Skip to content

Aand1/jaguar-bot

 
 

Repository files navigation

jaguar-bot

This repository contains the codes & drivers used for the autonomous mobile robot project (FYP) to perform autonomous navigation. The conifer-dashboard (web dashboard) is used to display the telemetry and relevant information of the robot via a local web server with NodeJS. (The repo is located over here: https://github.com/1487quantum/conifer-dashboard)

System

  • Ubuntu 14.04 LTS (64-bit)
  • ROS Indigo

ROS Packages

System

The following ROS packages are required to be installed system wide:

  • Gmapping: ros-indigo-gmapping
  • Map server: ros-indigo-map_server
  • AMCL: ros-indigo-amcl
  • Move base: ros-indigo-move-base
  • Camera Info Manager (Py): ros-indigo-camera-info-manage-py

To do so, simply run the following command, replacing package_name with the ones you need.

$ sudo apt-get install ros-indigo-[package_name]

Local

All the packages in this repo should be cloned & place into your workspace.

$ git clone https://github.com/1487quantum/jaguar-bot.git

Directories

An overview of the respective packages/directories:

  • joy: Joystick driver (Logitech)
  • teleop_twist_joy: Process /joy -> /cmd_vel
  • diff_drive_controller: Process /cmd_vel -> /joint_trajectory
  • kangaroo_driver: Process /joint_trajectory -> /joint_state, controls the motor
  • lms1xx_driver: Lidar Driver (LMS111)
  • axis_camera: Axis Web camera
  • hector_slam: Hector SLAM for mapping
  • image_common: For image transport
  • robot_pose_ekf: To estimate 3D pose of robot (odom & imu data)
  • robot_pose_publisher: To get the current pose of the robot
  • mtig_driver: Xsens IMU driver
  • ros_bridge_suite: Link ROS data over the web
  • twist_mux: A cmd_vel multiplexer with priority
  • teb_local_planner: A move_base plugin for path planning
  • yocs_velocity_smoother: Reduces sudden jerks and stops while controlling the robot (cmd_vel)

Custom

  • robot_core: Main control launch/config files to run the robot is here
  • robot_odom_subs: Listens to odometry
  • pointrecorder: To record waypoints via rosbag
  • ptserver: To playback the recorded waypoints

Remote viewing/control of GUI

x11vnc could be used to remotely view the computer's GUI.

$ sudo apt-get install x11vnc

To run it, take note of the IP address of the host computer.

$ x11vnc

VNC softwares like VNCViewer for Chrome or TightVNC could be used to view the GUI.

Note: Rviz requires a display to be connected to the computer, so even though VNC is able to display the GUI, Rviz will only WORK with a CONNECTED display. (As for now)

Troubleshooting

  • The joystick is detected by the computer (checked via lsusb) , but why is it not recognised as a port in /dev/input as js0?

    • Most probably the linux kernel was not loaded. You can load the kernel by using the modprobe command:
      $ sudo modprobe xpad
      
      After that, you should be able to find js0 in /dev/input/
  • [kangaroo_driver_node] process has died

    • If the following error is seen:
      [ERROR] [1496303682.359675330]: Failed to get the Data.
      *** stack smashing detected ***: ~/catkin_ws/devel/lib/kangaroo_driver/kangaroo_driver_node terminated
      
      It might be due to a wrongly specified USB port. Try changing the port number in the launch file param for the kangaroo node to either /dev/ttyUSB0, /dev/ttyUSB1, etc.
      <param name="port" value="/dev/ttyUSB1" />
      
    • If the IMU is used & the following error occurs, try swapping the USB ports of the IMU and the kangaroo node instead.

References

About

This is a collection of packages that was used in our autonomous robot project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 52.7%
  • C++ 42.7%
  • CMake 3.7%
  • C 0.5%
  • Shell 0.3%
  • MATLAB 0.1%