Code Monkey home page Code Monkey logo

jaguar-bot's Introduction

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

jaguar-bot's People

Contributors

130s avatar awesomebytes avatar bigcmos avatar brnx avatar cbjamo avatar cedricpradalier avatar chadrockey avatar cottsay avatar creativeentropy avatar dawonn avatar dirk-thomas avatar galou avatar goncabrita avatar ianmhoffman avatar jack-oquin avatar jbohren avatar jeff-o avatar mattamert avatar mikeferguson avatar mikepurvis avatar mmwise avatar rgariepy avatar schoolex avatar tonybaltovski avatar vrabaud avatar wkentaro avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.