# create_robot
[ROS](http://ros.org) driver for iRobot [Create 1 and 2](http://www.irobot.com/About-iRobot/STEM/Create-2.aspx).
This package wraps the C++ library [libcreate][libcreate], which uses iRobot's [Open Interface Specification][oi_spec].
<!--[](* Documentation: TODO)-->
* ROS wiki page: http://wiki.ros.org/create_robot
* Support: [ROS Answers (tag: create_robot)](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:create_robot/page:1/)
* Author: [Jacob Perron](http://jacobperron.ca) ([Autonomy Lab](http://autonomylab.org), [Simon Fraser University](http://www.sfu.ca))
## Build Status
- ROS Kinetic ![](https://github.com/autonomylab/create_robot/workflows/Continuous%20Integration/badge.svg?branch=kinetic)
- ROS Melodic ![](https://github.com/autonomylab/create_robot/workflows/Continuous%20Integration/badge.svg?branch=melodic)
- ROS Foxy ![](https://github.com/autonomylab/create_robot/workflows/Continuous%20Integration/badge.svg?branch=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](https://github.com//create_autonomy/issues/32)_
_* Not verified. Anyone who is able to verify that this driver works or not is encouraged to contact [Jacob](https://jacobperron.ca) with their findings or open an issue._
## Features
| Feature | Status |
|-------------------|---------------|
| Odometry | Available |
| Safe mode | Planned [#13](https://github.com/AutonomyLab/create_autonomy/issues/13) |
| Clean demo | Planned [#14](https://github.com/AutonomyLab/create_autonomy/issues/14) |
| Dock demo | Available |
| Drive wheels | N/A |
| Drive (v,w) | Available |
| Brush motors | Available |
| LEDs | Available |
| Digit LEDs | Available |
| Sound | Available |
| Wheeldrop | Available |
| Bumpers | Available |
| Cliff sensor | Planned [#22](https://github.com/AutonomyLab/create_autonomy/issues/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](http://wiki.ros.org/ROS/Installation) _Indigo_ or _Jade_
* Ubuntu packages: `python-rosdep`, `python-catkin-tools`
``` bash
$ sudo apt-get install python-rosdep python-catkin-tools
```
#### Compiling
1. Create a catkin workspace
``` bash
$ cd ~
$ mkdir -p create_ws/src
$ cd create_ws
$ catkin init
```
2. Clone this repo
``` bash
$ cd ~/create_ws/src
$ git clone https://github.com/autonomylab/create_robot.git
```
3. Install dependencies
``` bash
$ cd ~/create_ws
$ rosdep update
$ rosdep install --from-paths src -i
```
4. Build
``` bash
$ cd ~/create_ws
$ catkin build
```
#### USB Permissions
5. In order to connect to Create over USB, ensure your user is in the dialout group
``` bash
$ sudo usermod -a -G dialout $USER
```
6. Logout and login for permission to take effect
## Running the driver
### Setup
1. After compiling from source, don't forget to source your workspace:
``` bash
$ 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
3. Launch one of the existing launch files or adapt them to create your own.
### Launch files
For Create 2 (Roomba 600/700 series):
``` bash
$ roslaunch create_bringup create_2.launch
```
For Create 1 (Roomba 500 series):
``` bash
$ roslaunch create_bringup create_1.launch
```
For Roomba 400 series:
``` bash
$ 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:
```bash
$ 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][float32]
`battery/charge` | The current charge of the robot's battery (Ah) | [std_msgs/Float32][float32]
`battery/charge_ratio` | Charge / capacity | [std_msgs/Float32][float32]
`battery/charging_state` | The chargins state of the battery | [create_msgs/ChargingState][chargingstate_msg]
`battery/current` | Current flowing through the robot's battery (A). Positive current implies charging | [std_msgs/Float32][float32]
`battery/temperature` | The temperature of the robot's battery (degrees Celsius) | [std_msgs/Int16][int16]
`battery/voltage` | Voltage of the robot's battery (V) | [std_msgs/Float32][float32]
`bumper` | Bumper state message (including light sensors on bumpers) | [create_msgs/Bumper][bumper_msg]
`clean_button` | 'clean' button is pressed ('play' button for Create 1) | [std_msgs/Empty][empty]
`day_button` | 'day' button is pressed | [std_msgs/Empty][empty]
`hour_button` | 'hour' button is pressed | [std_msgs/Empty][empty]
`minute_button` | 'minute' button is pressed | [std_msgs/Empty][empty]
`dock_button` | 'dock' button is pressed ('advance' button for Create 1) | [std_msgs/Empty][empty]
`spot_button` | 'spot' button is pressed | [std_msgs/Empty][empty]
`ir_omni` | The IR character currently being read by the omnidirectional receiver. Value 0 means no character is being received | [std_msgs/UInt16][uint16]
`joint_states` | The states (position, velocity) of the drive wheel joints | [sensor_msgs/JointState][jointstate_msg]
`mode` | The current mode of the robot (See [OI Spec][oi_spec] for details)| [create_msgs/Mode][mode_msg]
`odom` | Robot odometry according to wheel encoders | [nav_msgs/Odometry][odometry]
`wheeldrop` | At least one of the drive wheels has dropped | [std_msgs/Empty][empty]
`/tf` | The transform from the `odom` frame to `base_footprint`. Only if the parameter `publish_tf` is `true` | [tf2_msgs/TFMessage](http://docs.ros.org/jade/api/tf2_msgs/html/msg/TFMessage.html)
### Subscribers
Topic | Description | Type
------------|---------------|------
`cmd_vel` | Drives the robot's wheels according to a forward and angular velocity | [geometry_msgs/Twist][twist]
`debris_led` | Enable / disable the blue 'debris' LED | [std_msgs/Bool][bool]
`spot
没有合适的资源?快使用搜索试试~ 我知道了~
iRobotCreate1和2的ROS驱动程序。_C++_CMake_下载
共48个文件
launch:7个
msg:6个
xacro:6个
需积分: 6 0 下载量 186 浏览量
2022-09-02
06:35:42
上传
评论
收藏 491KB ZIP 举报
温馨提示
(更多详情、使用方法,请下载后细读README.md文件) 创建机器人\niRobot Create 1 和 2的ROS驱动程序。这个包包装了 C++ 库libcreate,它使用 iRobot 的开放接口规范。\nROS wiki 页面: wiki.ros.orgcreate_robot\n支持:ROS Answers(标签:create_robot)\n作者:Jacob Perron(西蒙弗雷泽大学自治实验室)\n构建状态\nROS动力学\nROS旋律\n罗斯福克斯\n支持的机器人\n模型 支持\n创建 1 是的\n创建 2 (固件 = 3.2.6) 是的\nRoomba 原创系列 不\nRoomba 400 系列 是的\nRoomba 500 系列 是的 \nRoomba 600 系列 是的 \nRoomba 700 系列 是 +\nRoomba 800 系列 是 +\nRoomba 900 系列 不 \n+ 由第三方验证。请注意里程计问题 #28 未验证。鼓励任何能够验证此驱动程序是否有效的人与Jacob联系并告知他们的发现或提出问题。\n特征\n特征 地位\n里程计 可用的
资源详情
资源评论
资源推荐
收起资源包目录
iRobotCreate1和2的ROS驱动程序。.zip (48个子文件)
create_robot-melodic
.travis.yml 1KB
create_bringup
config
default.yaml 479B
xbox360.yaml 429B
log710.yaml 806B
launch
create_2.launch 474B
joy_teleop.launch 567B
roomba_400.launch 478B
create_1.launch 474B
CMakeLists.txt 221B
CHANGELOG.rst 1KB
package.xml 699B
create_robot
CMakeLists.txt 111B
CHANGELOG.rst 841B
package.xml 778B
.github
workflows
build_and_test.yml 459B
create_driver
include
create_driver
create_driver.h 6KB
src
create_driver.cpp 22KB
CMakeLists.txt 1KB
CHANGELOG.rst 3KB
README.md 57B
package.xml 891B
LICENSE 1KB
create_msgs
msg
Bumper.msg 561B
DefineSong.msg 284B
ChargingState.msg 161B
PlaySong.msg 36B
MotorSetpoint.msg 162B
Mode.msg 100B
CMakeLists.txt 369B
CHANGELOG.rst 810B
package.xml 604B
README.md 12KB
create_description
urdf
create_base_gazebo.urdf.xacro 6KB
create_base.urdf.xacro 7KB
create_2_gazebo.urdf.xacro 81B
create_1.urdf.xacro 438B
create_2.urdf.xacro 439B
create_1_gazebo.urdf.xacro 81B
meshes
create_1.dae 1.39MB
create_2.dae 380KB
create_1.tga 59KB
launch
create_2.launch 275B
roomba_400.launch 368B
create_1.launch 275B
CMakeLists.txt 502B
CHANGELOG.rst 1022B
README.md 251B
package.xml 652B
共 48 条
- 1
m0_57781768
- 粉丝: 9877
- 资源: 402
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0