All Projects → AutonomyLab → Create_robot

AutonomyLab / Create_robot

Licence: bsd-3-clause
ROS driver for iRobot Create 1 and 2.

Projects that are alternatives of or similar to Create robot

Ros canopen
CANopen driver framework for ROS (http://wiki.ros.org/ros_canopen)
Stars: ✭ 178 (+29.93%)
Mutual labels:  ros, driver
roboteq control
⚙️ Driver for Roboteq devices using ros_control
Stars: ✭ 32 (-76.64%)
Mutual labels:  driver, ros
Ros2 documentation
ROS 2 docs repository
Stars: ✭ 172 (+25.55%)
Mutual labels:  ros, hacktoberfest
Mattermost Redux
Redux for Mattermost
Stars: ✭ 198 (+44.53%)
Mutual labels:  hacktoberfest, driver
Ds4 driver
DualShock 4 driver for ROS
Stars: ✭ 28 (-79.56%)
Mutual labels:  ros, driver
ros-tritech-micron
🔊 Tritech Micron SONAR ROS driver
Stars: ✭ 19 (-86.13%)
Mutual labels:  driver, ros
spinnaker sdk camera driver
Point Grey (FLIR) Spinnaker based camera driver (Blackfly S etc.)
Stars: ✭ 106 (-22.63%)
Mutual labels:  driver, ros
Robotiq
Robotiq packages (http://wiki.ros.org/robotiq)
Stars: ✭ 110 (-19.71%)
Mutual labels:  ros, driver
Px4 Autopilot
PX4 Autopilot Software
Stars: ✭ 5,090 (+3615.33%)
Mutual labels:  ros, hacktoberfest
Rethinkdb.driver
🎧 A NoSQL C#/.NET RethinkDB database driver with 100% ReQL API coverage.
Stars: ✭ 350 (+155.47%)
Mutual labels:  hacktoberfest, driver
Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (-23.36%)
Mutual labels:  ros, driver
Dolly
🤖🐑 It's a sheep, it's a dolly, it's a following robot. Dolly was born to be cloned.
Stars: ✭ 113 (-17.52%)
Mutual labels:  ros, hacktoberfest
Github Action Markdown Link Check
Check all links in markdown files if they are alive or dead. 🔗✔️
Stars: ✭ 132 (-3.65%)
Mutual labels:  hacktoberfest
Slatwall
Slatwall - An Open Source Commerce Platform
Stars: ✭ 136 (-0.73%)
Mutual labels:  hacktoberfest
Django Anon
Anonymize production data so it can be safely used in not-so-safe environments
Stars: ✭ 136 (-0.73%)
Mutual labels:  hacktoberfest
Borealis
Hardware accelerated, controller and TV oriented UI library for PC and Nintendo Switch (libnx).
Stars: ✭ 135 (-1.46%)
Mutual labels:  hacktoberfest
Reduxmoviedb
🎥 See the upcoming movies! ReSwift + RxSwift 💖 Hacktoberfest 🎃
Stars: ✭ 137 (+0%)
Mutual labels:  hacktoberfest
Viabackwards
Allows the connection of older clients to newer server versions for Minecraft servers.
Stars: ✭ 135 (-1.46%)
Mutual labels:  hacktoberfest
Azureresources
Free Azure Resource including Study Guides and Exam Courses
Stars: ✭ 136 (-0.73%)
Mutual labels:  hacktoberfest
Interactive Courses
Stars: ✭ 136 (-0.73%)
Mutual labels:  hacktoberfest

create_robot

ROS driver for iRobot Create 1 and 2. This package wraps the C++ library libcreate, which uses iRobot's Open Interface Specification.

Build Status

  • ROS Kinetic
  • ROS Melodic
  • ROS Foxy

Supported Robots

Model Support
Create 1 Yes
Create 2 (firmware >= 3.2.6) Yes
Roomba Original Series No
Roomba 400 Series Yes
Roomba 500 Series Yes *
Roomba 600 Series Yes *
Roomba 700 Series Yes +
Roomba 800 Series Yes +
Roomba 900 Series No *

+ Verified by third-party. Please note Odometry Issue #28 * Not verified. Anyone who is able to verify that this driver works or not is encouraged to contact Jacob with their findings or open an issue.

Features

Feature Status
Odometry Available
Safe mode Planned #13
Clean demo Planned #14
Dock demo Available
Drive wheels N/A
Drive (v,w) Available
Brush motors Planned #15
LEDs Available
Digit LEDs Available
Sound Available
Wheeldrop Available
Bumpers Available
Cliff sensor Planned #22
Dirt detect N/A
Omni IR sensor Available
Left IR sensor N/A
Right IR sensor N/A
Battery info Available
Light sensors Available
Diagnostics
Corrupt packets Planned
Physical tests Planned
Overcurrent info Planned

Install

Prerequisites

  • Internet connection
  • ROS Indigo or Jade
  • Ubuntu packages: python-rosdep, python-catkin-tools
$ sudo apt-get install python-rosdep python-catkin-tools

Compiling

  1. Create a catkin workspace

    $ cd ~
    $ mkdir -p create_ws/src  
    $ cd create_ws  
    $ catkin init  
    
  2. Clone this repo

    $ cd ~/create_ws/src
    $ git clone https://github.com/autonomylab/create_robot.git
    
  3. Install dependencies

    $ cd ~/create_ws
    $ rosdep update  
    $ rosdep install --from-paths src -i  
    
  4. Build

    $ cd ~/create_ws
    $ catkin build
    

USB Permissions

  1. In order to connect to Create over USB, ensure your user is in the dialout group

    $ sudo usermod -a -G dialout $USER
    
  2. Logout and login for permission to take effect

Running the driver

Setup

  1. After compiling from source, don't forget to source your workspace:

    $ source ~/create_ws/devel/setup.bash
    
  2. Connect computer to Create's 7-pin serial port

  • If using Create 1, ensure that nothing is connected to Create's DB-25 port
  1. Launch one of the existing launch files or adapt them to create your own.

Launch files

For Create 2 (Roomba 600/700 series):

$ roslaunch create_bringup create_2.launch

For Create 1 (Roomba 500 series):

$ roslaunch create_bringup create_1.launch

For Roomba 400 series:

$ roslaunch create_bringup roomba_400.launch

Launch file arguments

  • config - Absolute path to a configuration file (YAML). Default: create_bringup/config/default.yaml
  • desc - Enable robot description (URDF/mesh). Default: true

For example, if you would like to disable the robot description and provide a custom configuration file:

$ roslaunch create_bringup create_2.launch config:=/abs/path/to/config.yaml desc:=false

Parameters

Name Description Default
dev Device path of robot /dev/ttyUSB0
base_frame The robot's base frame ID base_footprint
odom_frame The robot's odometry frame ID odom
latch_cmd_duration If this many seconds passes without receiving a velocity command the robot stops 0.2
loop_hz Frequency of internal update loop 10.0
publish_tf Publish the transform from odom_frame to base_frame true
robot_model The type of robot being controlled (supported values: ROOMBA_400, CREATE_1 and CREATE_2) CREATE_2
baud Serial baud rate Inferred based on robot model, but is overwritten upon providing a value

Publishers

Topic Description Type
battery/capacity The estimated charge capacity of the robot's battery (Ah) std_msgs/Float32
battery/charge The current charge of the robot's battery (Ah) std_msgs/Float32
battery/charge_ratio Charge / capacity std_msgs/Float32
battery/charging_state The chargins state of the battery create_msgs/ChargingState
battery/current Current flowing through the robot's battery (A). Positive current implies charging std_msgs/Float32
battery/temperature The temperature of the robot's battery (degrees Celsius) std_msgs/Int16
battery/voltage Voltage of the robot's battery (V) std_msgs/Float32
bumper Bumper state message (including light sensors on bumpers) create_msgs/Bumper
clean_button 'clean' button is pressed ('play' button for Create 1) std_msgs/Empty
day_button 'day' button is pressed std_msgs/Empty
hour_button 'hour' button is pressed std_msgs/Empty
minute_button 'minute' button is pressed std_msgs/Empty
dock_button 'dock' button is pressed ('advance' button for Create 1) std_msgs/Empty
spot_button 'spot' button is pressed std_msgs/Empty
ir_omni The IR character currently being read by the omnidirectional receiver. Value 0 means no character is being received std_msgs/UInt16
joint_states The states (position, velocity) of the drive wheel joints sensor_msgs/JointState
mode The current mode of the robot (See OI Spec for details) create_msgs/Mode
odom Robot odometry according to wheel encoders nav_msgs/Odometry
wheeldrop At least one of the drive wheels has dropped std_msgs/Empty
/tf The transform from the odom frame to base_footprint. Only if the parameter publish_tf is true tf2_msgs/TFMessage

Subscribers

Topic Description Type
cmd_vel Drives the robot's wheels according to a forward and angular velocity geometry_msgs/Twist
debris_led Enable / disable the blue 'debris' LED std_msgs/Bool
spot_led Enable / disable the 'spot' LED std_msgs/Bool
dock_led Enable / disable the 'dock' LED std_msgs/Bool
check_led Enable / disable the 'check robot` LED std_msgs/Bool
power_led Set the 'power' LED color and intensity. Accepts 1 or 2 bytes, the first represents the color between green (0) and red (255) and the second (optional) represents the intensity with brightest setting as default (255) std_msgs/UInt8MultiArray
set_ascii Sets the 4 digit LEDs. Accepts 1 to 4 bytes, each representing an ASCII character to be displayed from left to right std_msgs/UInt8MultiArray
dock Activates the demo docking behaviour. Robot enters Passive mode meaning the user loses control (See OI Spec) std_msgs/Empty
undock Switches robot to Full mode giving control back to the user std_msgs/Empty
define_song Define a song with up to 16 notes. Each note is described by a MIDI note number and a float32 duration in seconds. The longest duration is 255/64 seconds. You can define up to 4 songs (See OI Spec) create_msgs/DefineSong
play_song Play a predefined song create_msgs/PlaySong

Commanding your Create

You can move the robot around by sending geometry_msgs/Twist messages to the topic cmd_vel:

linear.x  (+)     Move forward (m/s)
          (-)     Move backward (m/s)
angular.z (+)     Rotate counter-clockwise (rad/s)
          (-)     Rotate clockwise (rad/s)

Velocity limits

-0.5 <= linear.x <= 0.5 and -4.25 <= angular.z <= 4.25

Teleoperation

create_bringup comes with a launch file for teleoperating Create with a joystick.

$ roslaunch create_bringup joy_teleop.launch [joy_config:=xbox360]

There exists configuration files for the Xbox 360 wired controller and the Logitech F710 controller. You can adapt these files for your preferred joystick configuration.

Contributions

Contributing to the development and maintenance of create_autonomy is encouraged. Feel free to open issues or create pull requests on GitHub.

Contributors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].