Hi,
im using ros-kinetic-gazebo-py (simulated).
I have 3 robots, one hector_uav and 2 turtlebots
my first tb3 have to send a msg to other two, and receive a message telling they are ready do start a mission.
then hector_uav have to go to the point, then he send a message to tb3_lead , that leader have to look for a object, since he found he have to get this location and send to second turtlebot. then i finish my mission.
i would like to know how can i make this communication
↧
communication ros-gazebo-simulation python
↧
Error: Device /dev/ttyACM0 is already locked
Hello. I am a ROS beginner. I am doing SLAM of turtlebot 2 in the ubuntu 14.04, ros (indigo) personal computer environment.
I am doing this tutorial to add hokuyo.
> http://wiki.ros.org/turtlebot/Tutorials/hydro/Adding%20a%20Hokuyo%20laser%20to%20your%20Turtlebot
However, the hokuyo node does not start except the first time.
> $ rosrun hokuyo_node hokuyo_node
[ERROR] [1543820081.096981504]: Exception thrown while opening Hokuyo.
Device /dev/ttyACM0 is already locked. Try 'lsof | grep /dev/ttyACM0' to find other processes that currently have the port open. (in hokuyo::laser::open) You may find further details at http://www.ros.org/wiki/hokuyo_node/Troubleshooting
and
> lsof | grep /dev/ttyACM0
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1001/gvfs
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /home/hanaoka/.gvfs
Output information may be incomplete.
hokuyo_no 29683 a 9uW CHR 166,0 0t0 505 /dev/ttyACM0
hokuyo_no 29683 7681 a 9uW CHR 166,0 0t0 505 /dev/ttyACM0
hokuyo_no 29683 29692 a 9uW CHR 166,0 0t0 505 /dev/ttyACM0
hokuyo_no 29683 29693 a 9uW CHR 166,0 0t0 505 /dev/ttyACM0
hokuyo_no 29683 29694 a 9uW CHR 166,0 0t0 505 /dev/ttyACM0
hokuyo_no 29683 29699 a 9uW CHR 166,0 0t0 505 /dev/ttyACM0
hokuyo_no 29683 29742 a 9uW CHR 166,0 0t0 505 /dev/ttyACM0
What should I do?
↧
↧
I want to change the topic frame of hokuyo node from laser to map.
Hello. I am a ROS beginner. I am doing SLAM of turtlebot 2 in the ubuntu 14.04, ros (indigo) personal computer environment.
I would like to install a URG because I want the sensor to send close range information.
so,I am doing this tutorial to add hokuyo.> http://wiki.ros.org/turtlebot/Tutorials/hydro/Adding%20a%20Hokuyo%20laser%20to%20your%20Turtlebot
I have two questions.
First, although the question which I did earlier is still unresolved, even at the first startup, rviz laserscan got an error. I thought that the scan frame was not a map but a laser.
What should I do?
Second,As shown in the tutorial page, the model of the new sensor is not displayed in turtlebot on rviz. Do not you have to worry about this?
Also, what would you do if you wanted to simulate turtlebot with hokuyo URG on gazebo?
Thank you.
↧
Turtlebot (and other objects) unintentionally moving by itself in Gazebo
When I start a simulation of the Turtlebot in Gazebo, it is slowly moving by itself (linear and angular). If I check the 'odom' messages published by Gazebo, there is always a small twist (linear x und angular z). After some minutes you can clearly see the changed pose in the Gazebo GUI. This is also happening to some other simple objects spawned in Gazebo (like cylinders). I already testet other friction values in the robot and world URDFs, but without success.
To reproduce the issue, you can simply run the turtlebot_world.launch from turtlebot_gazebo package and take a look at the 'odom' messages:
roslaunch turtlebot_gazebo turtlebot_world.launch &
rostopic echo /odom
System: Ubuntu 16.04 (kernel 4.15), ROS Kinetic (all involved packages on latest version, Gazebo 7).
↧
Start turtlebot world remotely from WIN10 with putty and xming
Hello,
i want to start my launch file remotely. I am on a WIN10 or Ubuntu 16.04 system and the system where i want to start from is also an Ubuntu 16.04 system.
I use ROS Kinetic with turtlebot simulation package. On Client Xming , putty is correctly installed and configured.
When i start:
roslaunch myworld.launch
the following happend:
SUMMARY
========
PARAMETERS
* /bumper2pointcloud/pointcloud_radius: 0.24
* /cmd_vel_mux/yaml_cfg_file: /opt/ros/kinetic/...
* /depthimage_to_laserscan/output_frame_id: /camera_depth_frame
* /depthimage_to_laserscan/range_min: 0.45
* /depthimage_to_laserscan/scan_height: 10
* /robot_description: >'
what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument
Aborted (core dumped)
Aborted (core dumped)
No handlers could be found for logger "roslaunch"
[gazebo-2] process has died [pid 24777, exit code 134, cmd /opt/ros/kinetic/lib/gazebo_ros/gzserver -e ode /home/usr/turtlebot_project/Tworld1.world __name:=gazebo __log:=/home/usr/.ros/log/a78d6c56-fdf7-11e8-b44c-d8cb8a119b1a/gazebo-2.log].
log file: /home/usr/.ros/log/a78d6c56-fdf7-11e8-b44c-d8cb8a119b1a/gazebo-2*.log
[gazebo_gui-3] process has died [pid 24789, exit code 134, cmd /opt/ros/kinetic/lib/gazebo_ros/gzclient __name:=gazebo_gui __log:=/home/usr/.ros/log/a78d6c56-fdf7-11e8-b44c-d8cb8a119b1a/gazebo_gui-3.log].
log file: /home/usr/.ros/log/a78d6c56-fdf7-11e8-b44c-d8cb8a119b1a/gazebo_gui-3*.log
Any tips? Is it to much data to run this remotely for xming ? The world is runnable without ssh directly from the ubuntu system without any issues.
↧
↧
gyro calibration not working
Hello, I followed instructions from [here](http://wiki.ros.org/turtlebot_calibration/Tutorials/Calibrate%20Odometry%20and%20Gyro).
I place my turtlebot infront of a wall and run "roslaunch turtlebot_calibration calibrate.launch"
I get the following output:
turtlebot@turtlebot:~$ roslaunch turtlebot_calibration calibrate.launch
... logging to /home/turtlebot/.ros/log/18910bfa-aae8-11e8-8d61-c45444f1a99a/roslaunch-turtlebot-23672.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.
started roslaunch server http://10.227.227.134:49248/
SUMMARY
========
PARAMETERS
* /camera/camera_nodelet_manager/num_worker_threads: 4
* /camera/disparity_depth/max_range: 4.0
* /camera/disparity_depth/min_range: 0.5
* /camera/disparity_registered_sw/max_range: 4.0
* /camera/disparity_registered_sw/min_range: 0.5
* /camera/driver/auto_exposure: True
* /camera/driver/auto_white_balance: True
* /camera/driver/bootorder: 0
* /camera/driver/color_depth_synchronization: False
* /camera/driver/depth_camera_info_url:
* /camera/driver/depth_frame_id: camera_depth_opti...
* /camera/driver/depth_registration: False
* /camera/driver/device_id: #1
* /camera/driver/devnums: 1
* /camera/driver/rgb_camera_info_url:
* /camera/driver/rgb_frame_id: camera_rgb_optica...
* /depthimage_to_laserscan/output_frame_id: /camera_depth_frame
* /depthimage_to_laserscan/range_min: 0.45
* /depthimage_to_laserscan/scan_height: 10
* /rosdistro: indigo
* /rosversion: 1.11.10
* /scan_to_angle/max_angle: 0.3
* /scan_to_angle/min_angle: -0.3
NODES
/camera/
camera_nodelet_manager (nodelet/nodelet)
disparity_depth (nodelet/nodelet)
disparity_registered_sw (nodelet/nodelet)
driver (nodelet/nodelet)
points_xyzrgb_sw_registered (nodelet/nodelet)
rectify_ir (nodelet/nodelet)
register_depth_rgb (nodelet/nodelet)
/
depthimage_to_laserscan (nodelet/nodelet)
scan_to_angle (turtlebot_calibration/scan_to_angle.py)
turtlebot_calibration (turtlebot_calibration/calibrate.py)
ROS_MASTER_URI=http://10.227.227.134:11311
core service [/rosout] found
process[camera/camera_nodelet_manager-1]: started with pid [23698]
[ INFO] [1535483897.185425398]: Initializing nodelet with 4 worker threads.
process[camera/driver-2]: started with pid [23720]
process[camera/rectify_ir-3]: started with pid [23738]
[ INFO] [1535483897.443592198]: Device "2bc5/0401@1/8" found.
Warning: USB events thread - failed to set priority. This might cause loss of data...
process[camera/register_depth_rgb-4]: started with pid [23800]
process[camera/points_xyzrgb_sw_registered-5]: started with pid [23842]
process[camera/disparity_depth-6]: started with pid [23857]
process[camera/disparity_registered_sw-7]: started with pid [23872]
process[depthimage_to_laserscan-8]: started with pid [23889]
process[scan_to_angle-9]: started with pid [23923]
process[turtlebot_calibration-10]: started with pid [23939]
/opt/ros/indigo/lib/turtlebot_calibration/scan_to_angle.py:52: SyntaxWarning: The publisher should be created with an explicit
keyword argument 'queue_size'. Please see http://wiki.ros.org/rospy/Overview/Publishers%20and%20Subscribers for more information.
self.pub = rospy.Publisher('scan_angle', ScanAngle)
[INFO] [WallTime: 1535483900.189991] has_gyro True
/opt/ros/indigo/lib/turtlebot_calibration/calibrate.py:80: SyntaxWarning: The publisher should be created with an explicit
keyword argument 'queue_size'. Please see http://wiki.ros.org/rospy/Overview/Publishers%20and%20Subscribers for more information.
self.cmd_pub = rospy.Publisher('cmd_vel', Twist)
Waiting for service /turtlebot_node/set_parameters...
[ INFO] [1535483905.161233538]: Starting color stream.
[ INFO] [1535483905.427477833]: Starting depth stream.
[ INFO] [1535483905.597403243]: using default calibration URL
[ INFO] [1535483905.597638469]: camera calibration URL: file:///home/turtlebot/.ros/camera_info/rgb_Astra_Orbbec.yaml
[ INFO] [1535483905.622643726]: using default calibration URL
[ INFO] [1535483905.622838547]: camera calibration URL: file:///home/turtlebot/.ros/camera_info/depth_Astra_Orbbec.yaml
And, that's it. nothing happens. The turtlebot doesn't rotate.
Any help is appreciated. Thank you
↧
Interrupting teleop from custom package
Hi all.
Please I need some help with code I'm writing to interrupt the teleop node on my Turtlebot3.
I have the following code:
#! /usr/bin/env python
import rospy
from sensor_msgs.msg import LaserScan
from geometry_msgs.msg import Twist
#defines a callback
def callback(msg):
# while not rospy.is_shutdown():
print('==================================')
# REAR
print('REAR [0]')
print msg.ranges[0]
# RIGHT
print('RIGHT [90]')
print msg.ranges[90]
# FRONT
print('FRONT [180]')
print msg.ranges[180]
if msg.ranges[180] == 0:
print "STOPPING FRONT MOTION"
move = Twist()
move.linear.x = 0.0
move.angular.z = 0.0
pub.publish(move)
# LEFT
print('LEFT [270]')
print msg.ranges[270]
if __name__ == '__main__':
try:
rospy.init_node('obstacle_avoidance')
pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10)
rospy.Subscriber('/scan', LaserScan, callback)
rospy.spin()
except rospy.ROSInterruptException:
pass
In the section of code commented **# FRONT**, the robot is in motion using the teleoperation package and I am attempting to stop the robot cold in it's tracks.
However, what happens is the wheel splutter i:e stop and continues in very quick succession.
Can anyone help point out my error, please?
↧
Creating a GUI for ROS
Hello,
I am a high school student working on a project to submit to an affiliate competition of the Intel International Science and Engineering Fair. I am trying to create a graphic user interface for ROS to make it even easier for hobbyists and schools to start working on robotics. I am testing it on a turtlebot. Essentially, it will allow you an area to download libraries as well as control the robot. I want to know how you guys think I should go about this. Is there a way to have a 'click' on the screen translate into a written command for the terminal? Thanks for any help you can give!
-Parker Gibbons
↧
Get Modelstate Information for Turlebot
Hello Guys,
I run ros Kinetic with gazebo 7.0. My project is a turtlebot who should drive to several objects and try to push them away after a try he should drive to the middle of the room again and drive to the next object. I tried Odometry for get information about the position of the robot but i need accurated position so i need model state.
So i think it should have a higher accuracy when i use modelstates.
I got my odometry information with following piece of code:
def newOdom(msg):
global x
global y
global theta
x = msg.pose.pose.position.x
y = msg.pose.pose.position.y
rot_q = msg.pose.pose.orientation
(roll,pitch,theta) = euler_from_quaternion ([rot_q.x,rot_q.y,rot_q.z,rot_q.w])
rospy.init_node("speed_controller")
sub = rospy.Subscriber("/odom",Odometry,newOdom)
My question is: It is correct to make the same with the
gazebo_msgs/ModelState
I updated my code to :
def newModel(msg):
global x
global y
global theta
x = msg.pose[1].pose.position.x
y = msg.pose.pose[1].position.y
rot_q = msg.pose[1].pose.orientation
(roll,pitch,theta) = euler_from_quaternion ([rot_q.x,rot_q.y,rot_q.z,rot_q.w])
rospy.init_node("speed_controller")
sub = rospy.Subscriber("/gazebo/ModelStates",ModelState,newModel)
I looked in publishing message and mobile base is at position 2 so it should be index 1. But all i got as x and y value is 0 even if i move the robot. Any further help?
With the subscriber note above i got no error but not the correct values.
I even tried out :
sub = rospy.Subscriber("/gazebo/model_states",ModelState,newModel)
If u use this i got following error:
[ERROR] [1430752035.526287969, 184.707000000]: Client [/listener] wants topic /gazebo/model_states to have datatype/md5sum [gazebo_msgs/ModelState/9330fd35f2fcd82d457e54bd54e10593], but our version has [gazebo_msgs/ModelStates/48c080191eb15c41858319b4d8a609c2]. Dropping connection.
This is also solved at [Modelstate error](https://answers.ros.org/question/208497/what-is-gazebo_msgsmodelstates-dependencies/)
↧
↧
I would like to create a plugin that remodeled the inflation layer of costmap _ 2 d.
Hello. I am a ROS beginner. I am doing SLAM of turtlebot 2 in the ubuntu 14.04, ros (indigo) personal computer environment.
I am trying to implement the cost I thought using my plugin in the costmap _ 2 d package.
Its cost expands concentrically from a certain coordinate.
Currently, it is the stage which succeeded in extracting certain coordinates (x, y) in the robot coordinate system using hokuyo.
So we want to propagate costs from this coordinates (x, y) based on the inflation layer.
However, I do not know where in this layer to improve.
Thank you for those who are familiar with the inflation layer.
[inflation layer source cord](https://github.com/ros-planning/navigation/blob/melodic-devel/costmap_2d/plugins/inflation_layer.cpp)
↧
Package installation confusion
I am missing something obvious, maybe you can help. I have a ROS install on my laptop that I have used with both turtlebot and turtlebot3. I am having a problem which I might have traced to diagnostic_agg. What is happening is that the msg that is published has a value at `msg.status[7].values[1].value` which I expected to see at status[7].
And given that these two robots are similar but not identical I started thinking that the fact that I have both turtlebot3 and turtlebot on the same computer may be the problem. So I double check my directories and I am not sure now whether turtlebot package is actually there. Here's what I did:
$ ls ~/catkin_make/src
CMakeLists.txt cr_ros cr_web rosbook turtlebot3 turtlebot3_msgs turtlebot3_simulations
$ sudo apt-get install ros-kinetic-turtlebot
sudo apt-get install ros-kinetic-turtlebot
Reading package lists... Done
Building dependency tree
Reading state information... Done
ros-kinetic-turtlebot is already the newest version (2.4.2-0xenial-20181203-135343-0800).
The following packages were automatically installed and are no longer required:
linux-headers-4.15.0-34 linux-headers-4.15.0-34-generic linux-image-4.15.0-34-generic linux-modules-4.15.0-34-generic
linux-modules-extra-4.15.0-34-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Add distro "groovy"
Add distro "hydro"
Add distro "indigo"
Add distro "jade"
Add distro "kinetic"
Add distro "lunar"
Add distro "melodic"
updated cache in /home/pitosalas/.ros/rosdep/sources.cache
rospack find turtlebot
[rospack] Error: package 'turtlebot' not found
However:
$ dpkg -l | grep turtlebot
ii ros-kinetic-turtlebot 2.4.2-0xenial-20181203-135343-0800 amd64 The turtlebot meta package provides all the basic drivers for running and using a TurtleBot.
ii ros-kinetic-turtlebot-bringup 2.4.2-0xenial-20181203-130710-0800 amd64 turtlebot_bringup provides roslaunch scripts for starting the TurtleBot base functionality.
ii ros-kinetic-turtlebot-capabilities 2.4.2-0xenial-20181107-032940-0800 amd64 Capabilities for the TurtleBot
ii ros-kinetic-turtlebot-description 2.4.2-0xenial-20180825-011706-0800 amd64 turtlebot_description provides a complete 3D model of the TurtleBot for simulation and visualization.
ii ros-kinetic-turtlebot-navigation 2.3.7-0xenial-20181203-134700-0800 amd64 turtlebot_navigation
ii ros-kinetic-turtlebot-teleop 2.4.2-0xenial-20181203-134652-0800 amd64 Provides teleoperation using joysticks or keyboard.
Here's the relvant part of my .bashrc
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
#export ROS_MASTER_URI=http://roscore1.cs.brandeis.edu:11311
#export ROS_MASTER_URI=http://129.64.147.94:11311
#export TURTLEBOT3_MODEL=burger
#export TB3_MODEL=burger
# export ROS_MASTER_URI=http://`myip`:11311
source ~/mydev/rosutils/.rosbash
export ROS_MASTER_URI=http://129.64.243.64:11311
export ROS_IP=`myip`
↧
problem in calculating coordinate from PointCloud2
Hi all, this is my callback
void get_point_cloud(const sensor_msgs::PointCloud2 &img) {
sensor_msgs::PointCloud2 img1;
tf::TransformListener listener;
tf::StampedTransform transform;
listener.lookupTransform(img.header.frame_id, "odom", ros::Time(0), transform);
pcl_ros::transformPointCloud("odom", img, img1, listener);
pcl::PointCloud::Ptr cloud(new pcl::PointCloud);
pcl::fromROSMsg(img1, *cloud);
cv::Mat frame;
if (cloud->isOrganized()) {
frame = cv::Mat(cloud->height, cloud->width, CV_8UC3);
for (int h = 0; h < frame.rows; h++) {
for (int w = 0; w < frame.cols; w++) {
pcl::PointXYZRGBA point = cloud->at(w, h);
if (point.y > 0) {
Eigen::Vector3i rgb = point.getRGBVector3i();
frame.at(h, w)[0] = rgb[2];
frame.at(h, w)[1] = rgb[1];
frame.at(h, w)[2] = rgb[0];
} else {
frame.at(h, w)[0] = 0;
frame.at(h, w)[1] = 0;
frame.at(h, w)[2] = 0;
}
}
}
}
cv::imshow("frame", frame);
cv::waitKey(1);
}
I want to use PointCloud2 as laser for my slam package, when I try to convert `img` from `camera_depth_optical_frame` frame to `img1` from `odom` frame and then apply that coordinates on my Map
When I run this code I got
terminate called after throwing an instance of 'tf2::LookupException'
what(): "camera_depth_optical_frame" passed to lookupTransform argument target_frame does not exist.
what is the problem?? I can see `odom` frame in tf tree!!
And my other problem is:
when I don't use tf Transform and try to use only `img` data (from camera_depth_optical_frame), some points has `point.y < 0`!!!!
what does it means?? that points must has `point.y` bigger that 0!!!
↧
In Gazebo, my robot can't see AR tag
OS : Ubuntu 16.04
ROS : Kinetic
Simulator : Gazebo
I made an AR tag model using Blender. (.dae)
And make a SDF file for Gazebo. I can see the AR tag in Gazebo.
4 0 0 0 0 0 true 2 0 0 0 0 0 model://ar_tags_for_turtlebot3_exp_house/meshes/ar_tag_00.dae
But, my robot can't see the AR tag. It just see the box !!!
In Rviz, it is same. Robot can't sense any obstacle(LIDAR). But, In camera, robot can see the box..
I don't know why. Please help me.
↧
↧
what is a good touch display microphone and speakers for turtlebot 2
I want to buy a turtlebot 2, and I am planning to use a touch display as interface also a microphone as a user interface.
But I couldn't find any helpful information about compatibility and the exact name of the device.
if anyone has knowledge of what type of touch display and microphone is compatible I need the name.
thank you in advance.
↧
I would like to use the same package with two different parameters
Hello. I am a ROS beginner. I am doing SLAM of turtlebot 2 in the ubuntu 14.04, ros (indigo) personal computer environment.
I am making a plugin for costmap _ 2 d.
So I would like to use two inflation layers with different parameters.
How can I duplicate the same package?
Thank you.
https://github.com/ros-planning/navigation/tree/indigo-devel/costmap_2d
↧
I am writing data of turtlebot movement, and I want to write a paper. How can I get the data?
Hello. I am a ROS beginner. I am doing SLAM of turtlebot 2 in the ubuntu 14.04, ros (indigo) personal computer environment.
I need the following data to write a paper.
How can I get the data?
(In navigation, I want data from RViz where I specified the goal point myself)
1. The global map and the trajectory that the robot actually moved in the global map
2. Movement distance and travel time from the start point to the goal point
3. Data for making graphs of speed and distance, speed and time
that's all.
What should I do?rosbag?
Thank you.
↧
Why no cmd_vel topic during ROS + Gazebo Turtlebot Simulation?
I have been having a very difficult time trying to understand why my system does not have the cmd_vel topic. I am trying to get a ROS system running with Gazebo so that I can work through tutorials and learn ROS. I started with the ROS Development Studio (online) and it was great! But sooner or later one must be able to get ROS going on a local system. So I built a Ubuntu system and installed ROS + Gazebo, then installed Turtlebot including the simulator. It all works! I can launch a Turtlebot simulation then launch the Turtlebot_teleop package and I am able to move the robot around.
But when I list the running topics cmd_vel is not one of them. These are the list of topics grep'd on "cmd":
scott@Ubvm:~/catkin_ws/devel$ rostopic list | grep cmd
/cmd_vel_mux/active
/cmd_vel_mux/input/navi
/cmd_vel_mux/input/safety_controller
/cmd_vel_mux/input/switch
/cmd_vel_mux/input/teleop
/cmd_vel_mux/parameter_descriptions
/cmd_vel_mux/parameter_updates
No /cmd_vel ! So I can't work through tutorials to drive the robot around. Besides, I just don't understand why it is not there but teleop works.
Could someone tell me why I do not see the cmd_vel topic?
System info:
Ubuntu 16.04
ROS Kinetic
Gazebo 7 (not sure exactly which version but it launches and runs)
Installed Turtlebot based on Indigo install but replaced with kinetic.
sudo apt-get install
ros-kinetic-turtlebot
ros-kinetic-turtlebot-apps
ros-kinetic-turtlebot-interactions
ros-kinetic-turtlebot-simulator
ros-kinetic-kobuki-ftdi
ros-kinetic-rocon-remocon
ros-kinetic-rocon-qt-library
ros-kinetic-ar-track-alvar-msgs
↧
↧
How to respawn kobuki or turtlebot on Gazebo
I'm trying reinforcement learning on Gazebo.
If robot hit the wall,bumper sensor reaction.
So, I wanna respawn robot in start position.
Sorry my poor English.Do you have any idea?
↧
Astra Camera Shows in rviz, Invalid device number in openni2
I'm working my way through the Turtlebot tutorials (http://learn.turtlebot.com/2015/02/01/8/), and I'm currently at the stage where I'm testing the 3D sensor. I'm running into a few problems since the Turtlebot that I purchased came with ROS installed on the laptop, but apparently not correctly configured. The sensor that came included is the Orbec Astra, which I had to go out separately to find drivers and such for. I can give that history if it's relevant, but given the symptoms I'm thinking that there is just some configuration subtlety that I'm missing.
**Configuration**
I'm working with a Turtlebot 2 using a Lenovo Thinkpad running Ubuntu 14.04 with ROS Indigo.
**What Works**
As a part of testing the Orbec Astra driver that I installed, I can run the following command successfully:
roslaunch astra_launch astra.launch
This produces the following output:
> turtlebot@turtlebot:~/catkin_ws$ roslaunch astra_launch astra.launch > ... logging to /home/turtlebot/.ros/log/862942be-1e5a-11e9-b052-7c7a9105e52e/roslaunch-turtlebot-19111.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.>> started roslaunch server http://localhost:53104/>> SUMMARY> ========>> PARAMETERS> * /camera/camera_nodelet_manager/num_worker_threads: 4> * /camera/depth_rectify_depth/interpolation: 0> * /camera/driver/auto_exposure: True> * /camera/driver/auto_white_balance: True> * /camera/driver/bootorder: 0> * /camera/driver/color_depth_synchronization: False> * /camera/driver/depth_camera_info_url: > * /camera/driver/depth_frame_id: camera_depth_opti...> * /camera/driver/depth_registration: False> * /camera/driver/device_id: #1> * /camera/driver/devnums: 1> * /camera/driver/rgb_camera_info_url: > * /camera/driver/rgb_frame_id: camera_rgb_optica...> * /rosdistro: indigo> * /rosversion: 1.11.10>> NODES> /camera/> camera_nodelet_manager (nodelet/nodelet)> depth_metric (nodelet/nodelet)> depth_metric_rect (nodelet/nodelet)> depth_points (nodelet/nodelet)> depth_rectify_depth (nodelet/nodelet)> driver (nodelet/nodelet)> points_xyzrgb_sw_registered (nodelet/nodelet)> rectify_color (nodelet/nodelet)> register_depth_rgb (nodelet/nodelet)> /> camera_base_link (tf/static_transform_publisher)> camera_base_link1 (tf/static_transform_publisher)> camera_base_link2 (tf/static_transform_publisher)> camera_base_link3 (tf/static_transform_publisher)>> auto-starting new master> process[master]: started with pid [19123]> ROS_MASTER_URI=http://localhost:11311>> setting /run_id to 862942be-1e5a-11e9-b052-7c7a9105e52e> process[rosout-1]: started with pid [19136]> started core service [/rosout]> process[camera/camera_nodelet_manager-2]: started with pid [19153]> process[camera/driver-3]: started with pid [19154]> [ INFO] [1548170976.456609336]: Initializing nodelet with 4 worker threads.> process[camera/rectify_color-4]: started with pid [19190]> process[camera/depth_rectify_depth-5]: started with pid [19204]> [ INFO] [1548170976.548044840]: Device "2bc5/0401@2/4" found.> Warning: USB events thread - failed to set priority. This might cause loss of data...> process[camera/depth_metric_rect-6]: started with pid [19234]> process[camera/depth_metric-7]: started with pid [19289]> process[camera/depth_points-8]: started with pid [19317]> process[camera/register_depth_rgb-9]: started with pid [19331]> process[camera/points_xyzrgb_sw_registered-10]: started with pid [19345]> process[camera_base_link-11]: started with pid [19359]> process[camera_base_link1-12]: started with pid [19372]> process[camera_base_link2-13]: started with pid [19383]> process[camera_base_link3-14]: started with pid [19410]
With this running, I can go into rviz, add topic /camera/depth/points/PointCloud2, set the Fixed Frame, and I can see the point cloud displayed in the grid. My understanding is that this indicates that the driver is installed correctly.
**What Doesn't Work**
According to the [Turtlebot tutorial](http://learn.turtlebot.com/2015/02/01/8/), the next step in verifying the depth sensor is to test it using the OpenNI package. Per the instructions, I bring up the Turtlebot in the minimal configuration and then run with openni. I've tried both versions available on my system: openni and openni2, the latter of which was installed trying to get the Astra camera working in the first place. Here's the output that I'm seeing:
> turtlebot@turtlebot:~$ roslaunch openni_launch openni.launch > ... logging to /home/turtlebot/.ros/log/33ff7e72-1e5f-11e9-86f8-7c7a9105e52e/roslaunch-turtlebot-28502.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.>> unused args [depth_registered_filtered] for include of [/opt/ros/indigo/share/rgbd_launch/launch/includes/processing.launch.xml]> The traceback for the exception was written to the log file> turtlebot@turtlebot:~$ roslaunch openni2_launch openni2.launch > ... logging to /home/turtlebot/.ros/log/33ff7e72-1e5f-11e9-86f8-7c7a9105e52e/roslaunch-turtlebot-28609.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.>> started roslaunch server http://localhost:47625/>> SUMMARY> ========>> PARAMETERS> * /camera/camera_nodelet_manager/num_worker_threads: 4> * /camera/depth_rectify_depth/interpolation: 0> * /camera/driver/auto_exposure: True> * /camera/driver/auto_white_balance: True> * /camera/driver/color_depth_synchronization: False> * /camera/driver/depth_camera_info_url: > * /camera/driver/depth_frame_id: camera_depth_opti...> * /camera/driver/depth_registration: False> * /camera/driver/device_id: #1> * /camera/driver/rgb_camera_info_url: > * /camera/driver/rgb_frame_id: camera_rgb_optica...> * /rosdistro: indigo> * /rosversion: 1.11.10>> NODES> /camera/> camera_nodelet_manager (nodelet/nodelet)> depth_metric (nodelet/nodelet)> depth_metric_rect (nodelet/nodelet)> depth_points (nodelet/nodelet)> depth_rectify_depth (nodelet/nodelet)> driver (nodelet/nodelet)> points_xyzrgb_sw_registered (nodelet/nodelet)> rectify_color (nodelet/nodelet)> register_depth_rgb (nodelet/nodelet)> /> camera_base_link (tf/static_transform_publisher)> camera_base_link1 (tf/static_transform_publisher)> camera_base_link2 (tf/static_transform_publisher)> camera_base_link3 (tf/static_transform_publisher)>> ROS_MASTER_URI=http://localhost:11311>> core service [/rosout] found> process[camera/camera_nodelet_manager-1]: started with pid [28628]> process[camera/driver-2]: started with pid [28636]> [ INFO] [1548173016.697688262]: Initializing nodelet with 4 worker threads.> process[camera/rectify_color-3]: started with pid [28667]> process[camera/depth_rectify_depth-4]: started with pid [28682]> [ INFO] [1548173016.819368063]: No matching device found.... waiting for devices. Reason: std::string openni2_wrapper::OpenNI2Driver::resolveDeviceURI(const string&) @ /tmp/buildd/ros-indigo-openni2-camera-0.2.3-0trusty-20150327-0611/src/openni2_driver.cpp @ 623 : Invalid device number 1, there are 0 devices connected.> process[camera/depth_metric_rect-5]: started with pid [28710]> process[camera/depth_metric-6]: started with pid [28725]> process[camera/depth_points-7]: started with pid [28742]> process[camera/register_depth_rgb-8]: started with pid [28757]> process[camera/points_xyzrgb_sw_registered-9]: started with pid [28772]> process[camera_base_link-10]: started with pid [28787]> process[camera_base_link1-11]: started with pid [28799]> process[camera_base_link2-12]: started with pid [28811]> process[camera_base_link3-13]: started with pid [28823]> [ INFO] [1548173019.819603347]: No matching device found.... waiting for devices. Reason: std::string openni2_wrapper::OpenNI2Driver::resolveDeviceURI(const string&) @ /tmp/buildd/ros-indigo-openni2-camera-0.2.3-0trusty-20150327-0611/src/openni2_driver.cpp @ 623 : Invalid device number 1, there are 0 devices connected.> [ INFO] [1548173022.819789168]: No matching device found.... waiting for devices. Reason: std::string openni2_wrapper::OpenNI2Driver::resolveDeviceURI(const string&) @ /tmp/buildd/ros-indigo-openni2-camera-0.2.3-0trusty-20150327-0611/src/openni2_driver.cpp @ 623 : Invalid device number 1, there are 0 devices connected.
This looks to me like the OpenNI2 driver doesn't know the right port or the right configuration for the Astra camera, but I'm not sure where that would be defined that I could fix it. My plan at the moment is to look at the difference between the astra.launch and openni2.launch files to see if I can see where the ports are defined. I'm also planning to look at the URDF file, since I copied that from the Kinect and I think that the two connect differently. I'm posting this here both for help and so that I can document any solution I find in case anyone else runs into the same problem. Help is very much appreciated!
↧
Poor quality maps produced from odometry based slam algorithms tested in real TurtleBot
We are currently testing several slam algorithms in a real TurtleBot(ROS Kinetic). Despite the fact that everything seems to be working fine on TurtleBot we have come across a problem on the maps coming from odometry based slam algorithms. **Although we changed the TurtleBot base to figure out whether the base had hardware or odometry issues, the maps remained the same**. The lidar we use has maximum range up to 17m.
## **Gmapping (using odometry)** ##
We tested gmapping with these parameters:
The map from **Gmapping** tested in the whole lab is [here.](https://pasteboard.co/HY4sG3N.png)
## **KartoSlam(using odometry)** ##
The map produced by **KartoSlam** tested in a lab's room with the default parameters is [this.](https://pasteboard.co/HY4tKrM.png)
## **CRSM Slam (no odometry used)** ##
The map produced by **CRSM Slam** tested in a lab's room, which does not use odometry is [this.](https://pasteboard.co/HY4uEfw.png)
As you can see the CRSM map is far better than the previous two.
----------
The questions :
1. Where shall we look for the fix, since we have tried the algorithms on two different TurtleBots?
2. How could we improve the map quality, since what we get so far is really poor?
↧