The turtlebot stack provides all the basic drivers for running and using a TurtleBot with ROS.
ROS Wiki : (http://www.ros.org/wiki/Robots/TurtleBot)
It keeps iRobot Create specific packages
Home Page: http://www.ros.org/wiki/turtlebot_create
The turtlebot stack provides all the basic drivers for running and using a TurtleBot with ROS.
ROS Wiki : (http://www.ros.org/wiki/Robots/TurtleBot)
This makes it far easier to handle with args in the launchers - i.e. kobuki vs create, I can easily redirect to correct params and launchers respective to the base.
If only roslaunch use the if/unless with strings instead of only booleans!
hi, dear,
I bought a turtlebot from your company. but at this line, I cannot understand:
https://github.com/turtlebot/turtlebot_create/blob/indigo/create_node/src/create_node/gyro.py#L91
why we use sensor_state.user_analog_input/self.gyro_measurement_range
?
why we don't directly use output data of imu, that means only use sensor_state.user_analog_input*(math.pi/180.0)
?
I cannot find any useful instruction for this usage in imu datasheet..
could you please tell me the reason?
Thank you very much! Is this way can totally eliminate the drift error of IMU?
Add extra support :
Need :
Hi I'm having trouble connecting to a roomba 521 on ros indigo. I have a laptop running hydro, where it connects just fine and a laptop running indigo, where I installed many nodes from source (using catkin).
On indigo I get the error "Failed to open port ....". I checked the dev rules, dmesg, ls -l /dev/ttyUSB0 and also tried to connect with minicom, to which it responds with a beep when I exit&reset (just like on the hydro laptop).
I have these environmental vars:
TURTLEBOT_BASE roomba
TURTLEBOT_STACKS circles
TURTLEBOT_SERIAL_PORT /dev/ttyUSB0
I'm wondering if there's any difference of connecting between hydro and indigo.
The setup scripts in the official turtlebot repos overwrite turtlebot env vars set by .bashrc. This does NOT happen with the repos I cloned using these instructions:
http://wiki.ros.org/turtlebot/Tutorials/indigo/Installation
I have not been able to find the scripts that set these variables, in order to fix the problem in the official repo. Please advise or fix in the official repo (since I'm just going to turn around & do a pull request).
(I'm assuming it's a worthwhile activity to try & get the official repo working.)
Below, catkin_ws is the workspace I've cloned the official repo into.
Last login: Mon Jul 21 22:08:15 2014 from localhost
bouchier@phb-netbook:$ env | grep TURT$ source catkin_ws/devel/setup.bash
TURTLEBOT_3D_SENSOR=kinect
TURTLEBOT_STACKS=circles
TURTLEBOT_SERIAL_PORT=/dev/ttyUSB0
TURTLEBOT_BASE=create
bouchier@phb-netbook:
bouchier@phb-netbook:~$ env | grep TURT
TURTLEBOT_3D_SENSOR=kinect
TURTLEBOT_STACKS=hexagons
TURTLEBOT_SIMULATION=false
TURTLEBOT_SERIAL_PORT=/dev/kobuki
TURTLEBOT_BASE=kobuki
TURTLEBOT_MAP_FILE=/home/bouchier/catkin_ws/src/turtlebot_apps/turtlebot_navigation/maps/willow-2010-02-18-0.10.yaml
TURTLEBOT_BATTERY=/sys/class/power_supply/BAT0
These may need a bit of tlc to get working properly. import PyKDL (#3) needs fixing to debug first though.
the meshes for the create need to be moved into the create_description to make this go away.
https://github.com/turtlebot/turtlebot/blob/master/turtlebot_description/urdf/turtlebot_library.urdf.xacro
https://github.com/turtlebot/turtlebot_create/blob/master/create_description/urdf/create.urdf.xacro
Something is wrong with the python_orocos_kdl package in Hydro. When I try to compile the create_node package I get this error:
-- ==> add_subdirectory(turtlebot_create/create_node)
CMake Error at /opt/ros/hydro/share/catkin/cmake/catkinConfig.cmake:72 (find_package):
Could not find a configuration file for package python_orocos_kdl.
Set python_orocos_kdl_DIR to the directory containing a CMake configuration
file for python_orocos_kdl. The file will have one of the following names:
python_orocos_kdlConfig.cmake
python_orocos_kdl-config.cmake
Call Stack (most recent call first):
turtlebot_create/create_node/CMakeLists.txt:4 (find_package)
I have reported this issue on the kdl mailing list: http://lists.mech.kuleuven.be/pipermail/orocos-dev/2013-July/012559.html
The open() of /dev/ttyUSB0 fails for reasons that are hard to understand. The error message (from a modified msg in create_driver.py that prints Exception.message in the log) is:
[ERROR] [WallTime: 1405999978.886373] Failed to open port /dev/ttyUSB0, Error: Port is already open.. Please make sure the Create cable is plugged into the computer.
The relevant code in create_driver.py is:
class SerialCommandInterface(object):
def init(self, tty, baudrate):
self.ser = serial.Serial(tty, baudrate=baudrate, timeout=SERIAL_TIMEOUT)
self.ser.open()
The exception is thrown by self.ser.open(). If I comment out self.ser.open() the open is successful and robot initialization proceeds.
The pySerial API doc says:
class serial.Serial
init(lots of params)
The port is immediately opened on object creation, when a port is given. It is not opened when port is None and a successive call to open() will be needed.
turtlebot_node passes in port. Thus it appears self.ser.open() is not needed, and various internet posts report that open() on an already-open serial port will throw an exception, though the API doc doesn't say that. But this driver code hasn't changed since before fuerte, so why would it suddenly break? Did something change between python 2.7.3 (in 12.04/Fuerte) and python 2.7.6 (in Trusty/Indigo) related to calling open() on already open ports? Or is something in my environment misconfigured?
Any suggestions?
These have been upgraded and need to be pushed switch to the new groovy.
Hi, dear,
sorry for stupid question here, I didn't understand the code at here:
https://github.com/turtlebot/turtlebot_create/blob/indigo/create_node/src/create_node/gyro.py#L82
I cannot understand why we divide /self.cal_offset
here to do angular velocity correction, shouldn't we use(gyro_measurement_range-self.cal_offset)
to divide by here?
I cannot understand the meaning of the formular's denominator.
Please instruct me. Thank you very much!
We use depthimage_to_laserscan for the real robots and the TB2 simulation.
Hence, I suggest to remove the simulator laser.
Hi,
I am have installed turtlebot binaries. While executing : roslaunch turtlebot_bringup minimal.launch
I am getting error as :
ERROR: cannot launch node of type [create_node/turtlebot_node.py]: can't locate node [turtlebot_node.py] in package [create_node]
ERROR: cannot launch node of type [create_node/kinect_breaker_enabler.py]: can't locate node [kinect_breaker_enabler.py] in package [create_node]
ERROR: cannot launch node of type [create_node/load_calib.py]: can't locate node [load_calib.py] in package [create_node]
I have attached the error. I have reinstalled turtlebot package more than thrice. I am still facing this issue.
Any help with this issue is really appreciated.
Thanks in advance
The current version of the 'create' robot has some basic changes.
The following change seems to make it nominally functional.
https://github.com/turtlebot/turtlebot_create/blob/indigo/create_node/src/create_node/robot_types.py
ROBOT_TYPES = {
'create': RobotType('create', 57600, create_sensor_handler.CreateSensorHandler,
wheel_separation=0.26),
'create2': RobotType('create', 115200, create_sensor_handler.CreateSensorHandler,
wheel_separation=0.26),
'roomba': RobotType('roomba', 115200, roomba_sensor_handler.RoombaSensorHandler,
wheel_separation=0.235),
}
There are also a number of new commands.
see http://www.irobot.com/~/media/MainSite/PDFs/About/STEM/Create/create_2_Open_Interface_Spec.pdf
I may be able to work on adding the new functionality in a branch if that would help.
I'm trying to use the create package under ROS Jade.
'
rosrun xacro xacro --inorder --verbosity=4 create.urdf.xacro
set base_x: 0.33 (create.urdf.xacro)
set base_y: 0.33 (create.urdf.xacro)
< ! - - =================================================================================== - ->
< ! - - | This document was autogenerated by xacro from create.urdf.xacro | - - >
< ! -- | EDITING THIS FILE BY HAND IS NOT RECOMMENDED | - - >
< ! - - =================================================================================== - - >
< robot name="turtlebot_hardware" xmlns:xacro="http://ros.org/wiki/xacro" >
< / robot >
'
and nothing else. I cannot load the description into Gazebo.
I have the turtlebot_create turtlebot_create_desktop packages checked out and built in my catkin_ws
It used to report like this:
[ERROR] [WallTime: 1368713878.887388] Failed to contact device with error: [Error reading from SCI port. No data.]. Please check that the Create is powered on and that the connector is plugged into the Create.
Now it's just:
[WallTime: 1399283839.642510] Create : robot not connected yet, sci not available
URDF I generated from xacro files cause an error.
Same occurred on Indigo-Trusty and Kinetic-Xenial.
$ more /opt/ros/indigo/share/create_description/urdf/create_gazebo.urdf.xacro
<?xml version="1.0"?>
<robot xmlns:xacro="http://ros.org/wiki/xacro" name="turtlebot_gazebo">
<xacro:macro name="sim_create">
<gazebo>
<plugin name="create_controller" filename="libgazebo_ros_create.so">
<alwaysOn>true</alwaysOn>
<node_namespace>turtlebot_node</node_namespace>
<left_wheel_joint>left_wheel_joint</left_wheel_joint>
<right_wheel_joint>right_wheel_joint</right_wheel_joint>
<front_castor_joint>front_castor_joint</front_castor_joint>
<rear_castor_joint>rear_castor_joint</rear_castor_joint>
<wheel_separation>.260</wheel_separation>
<wheel_diameter>0.066</wheel_diameter>
<base_geom>base_footprint_collision_base_link</base_geom>
<updateRate>40</updateRate>
<torque>1.0</torque>
</plugin>
</gazebo>
<gazebo reference="left_wheel_link">
<mu1>1.0</mu1>
<mu2>1.0</mu2>
<kp>1000000.0</kp>
<kd>100.0</kd>
<minDepth>0.001</minDepth>
<maxVel>1.0</maxVel>
</gazebo>
: (skip. https://github.com/turtlebot/turtlebot_create/blob/3a4803dd7ae741fecc52b602aa154403e7a58f7b/create_description/urdf/create.urdf.xacro)
$ rosrun xacro xacro `rospack find create_description`/urdf/create.urdf.xacro -o /tmp/irobot_create.urdf
$ check_urdf /tmp/irobot_create.urdf
Error: No link elements found in urdf file
at line 180 in /build/buildd/urdfdom-0.2.10+dfsg/urdf_parser/src/model.cpp
ERROR: Model Parsing the xml failed
$ more /tmp/irobot_create.urdf
<?xml version="1.0" ?>
<!-- =================================================================================== -->
<!-- | This document was autogenerated by xacro from /opt/ros/indigo/share/create_description/urdf/create.urdf.xacro | -->
<!-- | EDITING THIS FILE BY HAND IS NOT RECOMMENDED | -->
<!-- =================================================================================== -->
<robot name="turtlebot_hardware" xmlns:xacro="http://ros.org/wiki/xacro">
<!-- Macro for TurtleBot body. Including Gazebo extensions, but does not include Kinect -->
</robot>
(Indigo)
$ dpkg -p liburdfdom-dev ros-indigo-xacro ros-indigo-create-description|grep Vers
Version: 0.2.10+dfsg-1
Version: 1.9.5-0trusty-20160628-114306-0700
Version: 2.3.0-0trusty-20160629-001336-0700
(Kinetic)
$ apt-cache show liburdfdom-dev ros-kinetic-xacro ros-kinetic-create-description |grep Vers
Version: 0.4.1-1
Version: 1.11.0-0xenial-20160603-184331-0700
Version: 2.3.1-0xenial-20160624-182158-0700
import PyKDL doesn't work in groovy.
I'm using Roomba622 and turtlebot_create. I sometimes encounter the create_node producing error:
[ERROR] [1537945758.122246]: Failed to contact device with error: [Distance, angle displacement too big, invalid readings from robot. Distance: 12.78, Angle: 8.12]. Please check that the Create is powered on and that the connector is plugged into the Create.
[WARN] [1537945765.860798]: Invalid OI Mode Reported 254
When this error happens while the robot moving, the robot is out of control, update of the sensor (odometry) is stopped for a while, and the mapping program destroys current map. The error is not predictable, and not re-producible as far as I tried. It happens once in a few minutes in average.
I feel strange, because I have never seen this warning when I used Roomba 500 series. It may be hardware issue but I cannot reproduce it with same hardware and Roomba 500.
Does anyone know this problem?
For Gazebo 5+, the current mu values let wheels slip and chatter. Try 100,000 for the drive wheels
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.