Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Roomblock fail to open port /dev/roomba due to failure in remapping roomba serial port


I installed roomblock according to the instructions (sudo apt-get install ...).

First I launched roscore, then on separate terminal, I launched roslaunch roomblock_bringup roomblock.launch. It gave me error that say it cannot bind to /dev/rplidar. So I remapped my rplidar serial port by executing "" located at "/catkin_ws/src/roomblock/roomblock_bringup/scripts". It worked for my rplidar as shown below.

pi@pi-desktop:~$ ls -l /dev | grep ttyUSB
lrwxrwxrwx  1 root root           7 11月 26 10:25 rplidar -> ttyUSB0
crwxrwxrwx  1 root dialout 188,   0 11月 26 10:29 ttyUSB0
crwxrwxrwx  1 root dialout 188,   1 11月 26 10:25 ttyUSB1

However, my roomba serial port (ttyUSB1) is not remapped. I checked my roomba vendor and product id,

pi@pi-desktop:~$ lsusb
Bus 001 Device 008: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 006: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 001 Device 007: ID 05ac:021f Apple, Inc. Aluminum Mini Keyboard (JIS)
Bus 001 Device 005: ID 05ac:1005 Apple, Inc. 
Bus 001 Device 004: ID 05ac:0304 Apple, Inc. Mighty Mouse [Mitsumi, M1152]
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I found that my vendor and product id setting in roomba.rules didn't match, so I changed it to

KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0777", SYMLINK+="roomba"

Then, I executed "" to reset my udev rules and once again I executed "". Nevertheless, when I launched > roslaunch roomblock_bringup roomblock.launch, it gave me error as below.

pi@pi-desktop:~$ roslaunch roomblock_bringup roomblock.launch 
... logging to /home/pi/.ros/log/c96152be-0feb-11ea-944c-b827eba5a161/roslaunch-pi-desktop-2111.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

xacro: Traditional processing is deprecated. Switch to --inorder processing!
To check for compatibility of your document, use option --check-order.
For more infos, see
deprecated: xacro tags should be prepended with 'xacro' xml namespace.
Use the following script to fix incorrect usage:
        find . -iname "*.xacro" | xargs sed -i 's#<\([/]\?\)\(if\|unless\|include\|arg\|property\|macro\|insert_block\)#<\1xacro:\2#g'
when processing file: /opt/ros/kinetic/share/roomblock_description/robots/roomblock.urdf.xacro is deprecated; please use xacro instead
started roslaunch server http://pi-desktop:45632/


 * /raspicam_node/camera_frame_id: raspicam
 * /raspicam_node/camera_info_url: package://raspica...
 * /raspicam_node/framerate: 30
 * /raspicam_node/hFlip: True
 * /raspicam_node/height: 960
 * /raspicam_node/vFlip: True
 * /raspicam_node/width: 1280
 * /robot_description: <?xml version="1....
 * /robot_pose_ekf/freq: 10.0
 * /robot_pose_ekf/imu_used: False
 * /robot_pose_ekf/odom_used: True
 * /robot_pose_ekf/output_frame: odom
 * /robot_pose_ekf/publish_tf: True
 * /robot_pose_ekf/sensor_timeout: 1.0
 * /robot_pose_ekf/vo_used: False
 * /robot_state_publisher/publish_frequency: 5.0
 * /rosdistro: kinetic
 * /rosversion: 1.12.14
 * /rplidarNode/angle_compensate: True
 * /rplidarNode/frame_id: laser
 * /rplidarNode/inverted: False
 * /rplidarNode/serial_baudrate: 115200
 * /rplidarNode/serial_port: /dev/rplidar
 * /turtlebot_node/bonus: False
 * /turtlebot_node/has_gyro: False
 * /turtlebot_node/operation_mode: 2
 * /turtlebot_node/port: /dev/roomba
 * /turtlebot_node/robot_type: roomba
 * /turtlebot_node/update_rate: 30.0

    raspicam_node (raspicam_node/raspicam_node)
    robot_pose_ekf (robot_pose_ekf/robot_pose_ekf)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    rplidarNode (rplidar_ros/rplidarNode)
    turtlebot_node (create_node/


process[robot_state_publisher-1]: started with pid [2140]
process[rplidarNode-2]: started with pid [2143]
process[turtlebot_node-3]: started with pid [2145]
process[robot_pose_ekf-4]: started with pid [2158]
ERROR: cannot launch node of type [raspicam_node/raspicam_node]: raspicam_node
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/opt/ros/kinetic/share
[ERROR] [1574731763.728840]: Failed to open port /dev/roomba. Error:  Please make sure the Create cable is plugged into the computer. 

Failed to open port /dev/roomba. Error:  Please make sure the Create cable is plugged into the computer. 
Failed to open port /dev/roomba. Error:  Please make sure the Create cable is plugged into the computer.

Can somebody help me with this problem? I'm still new to ROS, so maybe I'm looking at the wrong places and I really appreciate if someone can point out where the problem is.