Skip to content

belluzj/RobAir

 
 

Repository files navigation

RobAIR ROS nodes for autonomous moving in crowded museum

This package provides several nodes used to enable the RobAIR Configuration 2 machine to find its way through a map, while avoiding collision with surrounding people.

Available nodes

Warning: work in progress.

  • ArduinoSensors
    This node reads data from the sensors that are connected to the Arduino One board. These include:

    • 3 infrared proximity sensors, used to detect holes in the ground in front of the robot's wheels (typically a stairway). Data is boolean.
    • 4 up to 8 ultrasound proximity sensors, used to detect obstacles around the robot. Data is a distance expressed in centimeters.

    This node publishes data to two ROS topics, one for each kind of sensor: /sensor/infrared_potholes and /sensor/ultrasound_obstacles

  • MotionControl
    This node listens to the /cmd topic for movement commands (as "move 1 meter forward" or "turn 25' left"), turns them into hardware-level instructions and forwards them to the motors. It is also responsible for "reflex behavior", which consists of stopping the motors in case of holes in the ground or if a person is too close to the robot. It does so by subscribing to the two previous topics.

  • Keyboard
    Enables simple motor commands using the keyboard.

  • AutoPilot
    Reads data from ultrasonic proximity sensors, Kinect, and SLAM nodes, plus a destination from a to-be-defined source in order to compute a path towards the destination, and feed the /cmd topic with the resulting directions.

Node and topics names follow recommendations from the RICM 5 team when possible.

TODO

  • Modify the Command message type to be higher-level and document it.
  • Modify the MotionControlNode to allow for more flexible movement commands (together with above point).
  • Actually implement the AutoPilot node. Algorithms have already been discussed on the project's wiki.
  • Make use of the skeleton tracking nodes in the above algortihms, and integrate them in the current framework.
  • Integrate the SLAM nodes from the other Ensimag team.
  • Look into the RICM5 team source code for reusable parts and for integration with their remote control architecture. They might indeed provide a node that sends high-level commands to the AutoPilot node (high-level as in "go to room 25" or "let me see the Joconde")

Launching nodes

In a terminal, run make. Make sure script files are executable with chmod +x scripts. You can then use the ./toutLancer.sh script to automatically open one gnome-terminal per command and run all provided nodes.

Alternatively, you can launch individual nodes as follows.

  • ROSMaster: roscore
  • Keyboard node (in a new terminal): rosrun robair_demo kb_control.py
  • Motors node (in a new terminal): rosrun robair_demo motion_control_node.py
  • Arduino sensors data (in a new terminal): rosrun robair_demo arduino_sensors.py

About

Code for conrol RobAir

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 66.6%
  • Other 18.5%
  • C++ 13.8%
  • Shell 1.1%