0
$\begingroup$

Rosanswers logo

Hello,

I am using a TurtleBot 2 with a Kobuki base. I can bring up the Kobuki dashboard and all the lights are green, but I get a constant "no devices connected" log message. It appears my Kinect is not properly working with the software (the light on the cable is not lit, though the light on the Kinect itself is)

Apparently this is a known issue that can be fixed by changing to "full mode" in the TurtleBot Dashboard, but I've looked all over the place and I can't figure out how to do this for the Kobuki version of the dashboard. Can anyone please tell me how to do this?

This is my first post here and I'm very new to everything about Linux, ROS, and the TurtleBot in general, so I sincerely apologize if this question is poorly worded or irrelevant.

Thanks in advance.

------------------EDIT------------ Adding the steps I've taken, but needed to remove anything that looked like a link because I don't have enough karma to post those...

First thing I do is connect the power to the Kinect (light on the cable goes green), and connect the Kinect USB and the Kobuki USB to the laptop. Then, I run roslaunch turtlebot_bringup minimal.launch and get the following:

SUMMARY
========

PARAMETERS
 * /app_manager/interface_master
 * /bumper2pointcloud/pointcloud_radius
 * /cmd_vel_mux/yaml_cfg_file
 * /diagnostic_aggregator/analyzers/input_ports/contains
 * /diagnostic_aggregator/analyzers/input_ports/path
 * /diagnostic_aggregator/analyzers/input_ports/remove_prefix
 * /diagnostic_aggregator/analyzers/input_ports/timeout
 * /diagnostic_aggregator/analyzers/input_ports/type
 * /diagnostic_aggregator/analyzers/kobuki/contains
 * /diagnostic_aggregator/analyzers/kobuki/path
 * /diagnostic_aggregator/analyzers/kobuki/remove_prefix
 * /diagnostic_aggregator/analyzers/kobuki/timeout
 * /diagnostic_aggregator/analyzers/kobuki/type
 * /diagnostic_aggregator/analyzers/power/contains
 * /diagnostic_aggregator/analyzers/power/path
 * /diagnostic_aggregator/analyzers/power/remove_prefix
 * /diagnostic_aggregator/analyzers/power/timeout
 * /diagnostic_aggregator/analyzers/power/type
 * /diagnostic_aggregator/analyzers/sensors/contains
 * /diagnostic_aggregator/analyzers/sensors/path
 * /diagnostic_aggregator/analyzers/sensors/remove_prefix
 * /diagnostic_aggregator/analyzers/sensors/timeout
 * /diagnostic_aggregator/analyzers/sensors/type
 * /diagnostic_aggregator/base_path
 * /diagnostic_aggregator/pub_rate
 * /mobile_base/base_frame
 * /mobile_base/battery_capacity
 * /mobile_base/battery_dangerous
 * /mobile_base/battery_low
 * /mobile_base/cmd_vel_timeout
 * /mobile_base/device_port
 * /mobile_base/odom_frame
 * /mobile_base/publish_tf
 * /mobile_base/wheel_left_joint_name
 * /mobile_base/wheel_right_joint_name
 * /robot/name
 * /robot/type
 * /robot_description
 * /robot_pose_ekf/freq
 * /robot_pose_ekf/imu_used
 * /robot_pose_ekf/odom_used
 * /robot_pose_ekf/output_frame
 * /robot_pose_ekf/sensor_timeout
 * /robot_pose_ekf/vo_used
 * /robot_state_publisher/publish_frequency
 * /rosdistro
 * /rosversion
 * /turtlebot_laptop_battery/acpi_path
 * /use_sim_time
 * /zeroconf/zeroconf_avahi/services

NODES
  /zeroconf/
    zeroconf_avahi (zeroconf_avahi/zeroconf)
  /
    app_manager (turtlebot_app_manager/app_manager)
    appmaster (turtlebot_app_manager/appmaster)
    bumper2pointcloud (nodelet/nodelet)
    cmd_vel_mux (nodelet/nodelet)
    diagnostic_aggregator (diagnostic_aggregator/aggregator_node)
    mobile_base (nodelet/nodelet)
    mobile_base_nodelet_manager (nodelet/nodelet)
    robot_pose_ekf (robot_pose_ekf/robot_pose_ekf)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    turtlebot_laptop_battery (linux_hardware/laptop_battery.py)

auto-starting new master
process[master]: started with pid [2069]
ROS_MASTER_URI=*removed because I can't post links*
setting /run_id to 31b356b6-c889-11e2-a601-0800271ddb21
process[rosout-1]: started with pid [2082]
started core service [/rosout]
process[zeroconf/zeroconf_avahi-2]: started with pid [2085]
process[robot_state_publisher-3]: started with pid [2086]
process[diagnostic_aggregator-4]: started with pid [2107]
process[mobile_base_nodelet_manager-5]: started with pid [2119]
process[mobile_base-6]: started with pid [2120]
process[robot_pose_ekf-7]: started with pid [2121]
process[cmd_vel_mux-8]: started with pid [2140]
process[bumper2pointcloud-9]: started with pid [2141]
process[turtlebot_laptop_battery-10]: started with pid [2260]
process[appmaster-11]: started with pid [2409]
process[app_manager-12]: started with pid [2496]

After this, the Kobuki plays a little tune. Then, I go to the workstation and run rqt -s kobuki_dashboard and get the following message about 20 times:

Exception AttributeError: AttributeError("'_DummyThread' object has no attribute '_Thread__block'",) in <module 'threading' from '/usr/lib/python2.7/threading.pyc'> ignored

I don't think it's necessarily an issue though, because the dashboard launches anyway, and has all the green lights in the top left lit, and can receive messages from the Kobuki.

Then, I open another terminal on the laptop and run roslaunch turtlebot_bringup 3dsensor.launch, and get this:

This code block was moved to the following github gist: https://gist.github.com/answers-se-migration-openrobotics/0f3460a484c62f5fec9b9eeaf35d83e5

I then open another terminal on the workstation and run roslaunch turtlebot_rviz_launchers view_robot.launch and get this in the window:

started roslaunch server *removed*

SUMMARY
========

PARAMETERS
 * /rosdistro
 * /rosversion

NODES
  /
    rviz (rviz/rviz)

ROS_MASTER_URI=*removed*

core service [/rosout] found
process[rviz-1]: started with pid [2100]

Then the RViz window opens and I get a GUI showing a 3D image of the Turtlebot that I can rotate around. But if I click on the "Registered DepthCloud" and "LaserScan" checkboxes like the tutorial suggests, I see no change in the GUI.

Also, checking the "Registered DepthCloud" occasionally crashes everything; the Kobuki plays a sound like it's shutting off, RViz freezes, and the virtual machine on the laptop completely crashes and I have to reboot.

Originally posted by BlitherPants on ROS Answers with karma: 394 on 2013-05-24

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Hi Pants,

I'm not aware of any 'full mode' for Kobuki - maybe that belongs to the Create? If you talk about the launch files, then there is a minimal.launch, which only brings up the minimal configuration needed for the TurtleBot to run (e.g. does not include the driver for the Kinect). On top you are supposed to start whatever you need to run your application, e.g. navigation. Please add to your question what programs/nodes/launchers you are starting/using to reproduce your problem.

Looking at your problem that the Kinect is not working, I noticed you have mentioned that the LED on the Kinect cable is not lit. That's odd. It is supposed to be turned on. Please check, that the connection cable is plugged into the netbook (data) and the Kobuki base (power).


Originally posted by bit-pirate with karma: 2062 on 2013-05-26

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by BlitherPants on 2013-05-27:
Hi bit-pirate, thanks for the response! The reason I expected full mode to solve the problem is this line in the user manual for Turtlebot 2: "Kinect is not responding and green light on Kinect adaptor is off. Either issue a motion command to the Create or use the SetTurtlebotMode service in

Comment by BlitherPants on 2013-05-27:
continued turtlebot_node to change the mode to "full mode" . "

Anyway, these are the steps I've taken:

  1. Put desktop and laptop on same network (via Hamachi VPN)
  2. Plug laptop to Kobuki via USB cable
  3. Plug Kinect power to 12V 1.5A port on Kobuki, and Kinect USB to laptop 4 Turn Kobuki on

Comment by BlitherPants on 2013-05-27:
5. On laptop, run "roslaunch turtlebot_bringup minimal.launch" and wait for the Kobuki to play a happy sound 6. On desktop, run "rqt -s kobuki_dashboard" -- all the lights on the top left of the window are green

Comment by BlitherPants on 2013-05-27:
7. Open a new terminal on the laptop and run "roslaunch turtlebot_bringup 3dsensor.launch. After this step, the dashboard on the workstation starts displaying "no devices connected" messages. 8. Open new workstation terminal and run "roslaunch turtlebot_rviz_launchers view_robot.launch"

Comment by BlitherPants on 2013-05-27:
The window that opens shows no Kinect output and I'm not surprised, since the cable light is still not lit even though the Kinect light is. Is there another roslaunch command that is needed to start up the Kinect? Trying to follow the tutorial (http://ros.org/wiki/turtlebot) exactly

Comment by BlitherPants on 2013-05-27:
BTW, running ROS Groovy and Ubuntu 12.04 (64 bit) on a VirtualBox on both computers. I can run the keyboard teleop demo perfectly fine. Sorry for the comment spam. A little confused by the character limit and not sure if I'm doing something wrong here...

Comment by bit-pirate on 2013-05-27:
I have found the advice you mentioned in Clearpath's TurtleBot 2 manual. Is this the one you are referring to? Since they mention the Create, which is used in the TurtleBot 1, I'm assuming they just missed to update it. For Kobuki - used in TurtleBot 2 - there is no such thing as a "full mode".

Comment by bit-pirate on 2013-05-27:
Now looking at your Kinect problem: 1. Try to avoid using virtual machines. I tried it once and failed with getting the Kinect running. Others noticed similar problems. Not sure, if there is a working solution other there to get the Kinect running inside a virtual machine.

Comment by bit-pirate on 2013-05-27:
I can reproduce your error, when I unplug the power supply for the Kinect (green light turns off, device not recognised any more). One thing you can try is to turn on the power supply manually. Use the /mobile_base/commands/external_power topic and corresponding message type to do so.

Comment by bit-pirate on 2013-05-27:
Finally, if the above doesn't help, then your cable might be broken ...

Comment by BlitherPants on 2013-05-28:
You are right; when I disconnect the Kinect power, the light on the Kinect base still blinks and everything is the same as before. Possibly I messed up using the power modification kit. Sorry to ask silly questions, but how would I formulate the command to turn on the power supply, please?

Comment by BlitherPants on 2013-05-28:
(BTW, the Kinect itself should be working; I tested it on an XBox 360 before splicing the cable)

Comment by BlitherPants on 2013-05-28:
Update: I used a voltmeter to check that the 12v port on the Kobuki was outputting 12v, so it probably doesn't need to be manually turned on. More importantly, I reattached the Kinect power to its wall supply directly and now the green light comes on, so it's probably that I messed up the molex job

Comment by BlitherPants on 2013-05-28:
However, I still can't see the Kinect output in RViz. Instead of "device not found" in Kobuki dashboard, I'm getting messages like: "~device_id is not set! Using first device" and "Camera calibration file /home/turtlebot/.ros/camera_info/rgbB00365220380130B.yaml not found" Not sure what these mean?

Comment by BlitherPants on 2013-05-28:
On further research, it looks like the messages might mean I need to run something called "OpenNI". But if I try to run "roslaunch openni_launch openni.launch" in the terminal, it tells me openni_launch is not a package or launch file name. I guess that means I need to install it? I'm not sure how

Comment by bit-pirate on 2013-05-28:
The command you need is rostopic pub /mobile_base/commands/external_power kobuki_msgs/ExternalPower 3 1, if I remember correct. Have a look at the ROS tutorials about pub/subs. Also the tool rosmsg is really helpful, e.g. rosmsg show kobuki_msgs/ExternalPower.

Comment by bit-pirate on 2013-05-28:
The output "~device_id is not set! ..." looks ok. There could be many reason, why you don't see Kinect's output in RViz, such as a wrong reference frame set, Pointcloud2 plugin not loaded, wrong pointcloud topic set etc. Please provide more detailed information. Please edit your question to do so.

Comment by BlitherPants on 2013-05-29:
OK, I will do that in the original question. What kind of information should I provide? I'm sorry for asking so many elementary questions, and I really appreciate your patience and willingness to help. Thanks again!

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.