Quantcast
Channel: ROS Answers: Open Source Q&A Forum - RSS feed
Viewing all 72 articles
Browse latest View live

reload urdf for robot_state_publisher?

$
0
0
I am currently improving the calibration procedure for my robot and create an urdf-file according to some calibration values. After I have measured a new value (e.g. maximal position for an axis), I update the urdf file and upload it to the parameter server. However, the robot_state_publisher does not reload this parameter regularly so that a change of the robot-description-Parameter is not reflected e.g. in RVIZ. I currently just kill the robot_state_publisher (and launch it with respawn), but that it's a bit ugly. I don't care if the frames are jumping after the reload, I'd just be happy to have a possibility to specify and update-intervall so that the param is read regularly.

Is there a environmental variable for current namespace in launchfiles?

$
0
0
Hi, I have created an multirobot launch for Gazebo. Now I found out that there is a solvable problem with the namespace in the robot state publisher. I solved it with adding a tf_prefix. But now here is what I am interested in. Is it possible to get the current namespace into the instead of writing the namespace name? Is there an environment variable that I could for example write something like this to get the "current namespace" for a parameter?: Unfortunately robot state publisher does not care about the namespace like for example the gazebo plugins do, if you do not add an tf_prefix they add it automatically. I also know that there is the possibility to include this by a separate launchfile and add an argument for that. [Code is here](https://github.com/Hacks4ROS/h4r_rapid_robot_xacros/blob/develop/launch/multi_diff_drive_bot.launch) Or can I make this code (robot_state_publisher) std::string tf_prefix_key; n_tilde.searchParam("tf_prefix", tf_prefix_key); n_tilde.param(tf_prefix_key, tf_prefix_, std::string("")); return the **current namespace** into tf_prefix_ somehow? UPDATE: I added a pull request for the robot state publisher to be able to use the current namespace as prefix, as long as there is not another approach: https://github.com/ros/robot_state_publisher/pull/30 Regards, Christian

robot_state_publisher, for gazebo only or for actual robot?

$
0
0
Hi all The robot_state_publisher publishes transform (which is usually based on the URDF file specified). But when we are talking about the URDF file, we are usually talking about Gazebo, which is for simulation. Ok. But if I want to do ACTUAL physical robot, do I still need to use robot_state_publisher to publishes transform? I am confused. If robot_state_publisher still publishes transform, what happen to the PHYSICAL base driver of the robot? From what I know, the base driver publishes odometry and transform as well. I am very confused.

turtlebot apt-get update has generated an error on minimal.launch

$
0
0
Hi Just ran apt-get update on a turtlebot install on an odroid C1 (ARM board) running 14.04 and indigo. robot_state_publihser version is 1.10.4 After the update running minimal.launch I get the rising notes from the turtlebot but output now contains error odroid@odroid:~$ roslaunch turtlebot_bringup minimal.launch ... logging to /home/odroid/.ros/log/f6f0c208-0052-11e5-a038-001e06c2b101/roslaunch-odroid-1862.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://odroid:57919/ SUMMARY ======== PARAMETERS * /app_manager/auto_rapp_installation: False * /app_manager/auto_start_rapp: * /app_manager/capability_server_name: capability_server * /app_manager/local_remote_controllers_only: False * /app_manager/preferred: [{'rocon_apps/chi... * /app_manager/rapp_package_blacklist: [] * /app_manager/rapp_package_whitelist: ['rocon_apps', 't... * /app_manager/robot_icon: turtlebot_bringup... * /app_manager/robot_name: turtlebot * /app_manager/robot_type: turtlebot * /app_manager/screen: True * /app_manager/simulation: False * /bumper2pointcloud/pointcloud_radius: 0.24 * /capability_server/blacklist: ['std_capabilitie... * /capability_server/defaults/kobuki_capabilities/KobukiBringup: kobuki_capabiliti... * /capability_server/defaults/kobuki_capabilities/KobukiBumper: kobuki_capabiliti... * /capability_server/defaults/kobuki_capabilities/KobukiCliffDetection: kobuki_capabiliti... * /capability_server/defaults/kobuki_capabilities/KobukiLED1: kobuki_capabiliti... * /capability_server/defaults/kobuki_capabilities/KobukiLED2: kobuki_capabiliti... * /capability_server/defaults/kobuki_capabilities/KobukiLED: kobuki_capabiliti... * /capability_server/defaults/kobuki_capabilities/KobukiWheelDropDetection: kobuki_capabiliti... * /capability_server/defaults/std_capabilities/Diagnostics: turtlebot_capabil... * /capability_server/defaults/std_capabilities/DifferentialMobileBase: kobuki_capabiliti... * /capability_server/defaults/std_capabilities/LaserSensor: turtlebot_capabil... * /capability_server/defaults/std_capabilities/RGBDSensor: turtlebot_capabil... * /capability_server/defaults/std_capabilities/RobotStatePublisher: turtlebot_capabil... * /capability_server/defaults/turtlebot_capabilities/TurtleBotBringup: turtlebot_capabil... * /capability_server/nodelet_manager_name: capability_server... * /capability_server/package_whitelist: ['kobuki_capabili... * /cmd_vel_mux/yaml_cfg_file: /opt/ros/indigo/s... * /description: Kick-ass ROS turtle * /diagnostic_aggregator/analyzers/input_ports/contains: ['Digital Input',... * /diagnostic_aggregator/analyzers/input_ports/path: Input Ports * /diagnostic_aggregator/analyzers/input_ports/remove_prefix: mobile_base_nodel... * /diagnostic_aggregator/analyzers/input_ports/timeout: 5.0 * /diagnostic_aggregator/analyzers/input_ports/type: diagnostic_aggreg... * /diagnostic_aggregator/analyzers/kobuki/contains: ['Watchdog', 'Mot... * /diagnostic_aggregator/analyzers/kobuki/path: Kobuki * /diagnostic_aggregator/analyzers/kobuki/remove_prefix: mobile_base_nodel... * /diagnostic_aggregator/analyzers/kobuki/timeout: 5.0 * /diagnostic_aggregator/analyzers/kobuki/type: diagnostic_aggreg... * /diagnostic_aggregator/analyzers/power/contains: ['Battery', 'Lapt... * /diagnostic_aggregator/analyzers/power/path: Power System * /diagnostic_aggregator/analyzers/power/remove_prefix: mobile_base_nodel... * /diagnostic_aggregator/analyzers/power/timeout: 5.0 * /diagnostic_aggregator/analyzers/power/type: diagnostic_aggreg... * /diagnostic_aggregator/analyzers/sensors/contains: ['Cliff Sensor', ... * /diagnostic_aggregator/analyzers/sensors/path: Sensors * /diagnostic_aggregator/analyzers/sensors/remove_prefix: mobile_base_nodel... * /diagnostic_aggregator/analyzers/sensors/timeout: 5.0 * /diagnostic_aggregator/analyzers/sensors/type: diagnostic_aggreg... * /diagnostic_aggregator/base_path: * /diagnostic_aggregator/pub_rate: 1.0 * /icon: turtlebot_bringup... * /interactions/interactions: ['turtlebot_bring... * /interactions/pairing: True * /interactions/rosbridge_address: localhost * /interactions/rosbridge_port: 9090 * /interactions/webserver_address: webapp.robotconce... * /mobile_base/base_frame: base_footprint * /mobile_base/battery_capacity: 16.5 * /mobile_base/battery_dangerous: 13.2 * /mobile_base/battery_low: 14.0 * /mobile_base/cmd_vel_timeout: 0.6 * /mobile_base/device_port: /dev/kobuki * /mobile_base/odom_frame: odom * /mobile_base/publish_tf: True * /mobile_base/use_imu_heading: True * /mobile_base/wheel_left_joint_name: wheel_left_joint * /mobile_base/wheel_right_joint_name: wheel_right_joint * /name: turtlebot * /robot/name: turtlebot * /robot/type: turtlebot * /robot_description: rosboost_cfg.main() File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 362, in main output = lflags(ver, options.lflags.split(',')) File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 280, in lflags s += lib_flags(ver, lib) + " " File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 270, in lib_flags lib = find_lib(ver, name) File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 240, in find_lib raise BoostError('Could not locate library [%s], version %s'%(name, ver)) rosboost_cfg.rosboost_cfg.BoostError: "Could not locate library [regex], version (1, 54, 0, '/usr', '/usr/include', True, True)" this text is repeated 4 times (From the traceback line, and then prints out what is below and roswtf terminates = =============================================================================== Static checks summary: No errors or warnings ================================================================================ Beginning tests of your ROS graph. These may take awhile... analyzing graph... ... done analyzing graph running graph rules... ... done running graph rules Online checks summary: Found 1 warning(s). Warnings are things that may be just fine, but are sometimes at fault WARNING The following node subscriptions are unconnected: * /rosout: * /rosout googling that gives previous similar errors, but not for regex -eg https://github.com/ros/ros/issues/62 and https://github.com/ros/ros/issues/66 it might be related to those Tried following this http://answers.ros.org/question/11155/rospack-ends-with-rosboost_cfgrosboost_cfgboosterror/ as it seems to be the same issue got this result odroid@odroid:/opt/ros/indigo/share/turtlebot_bringup/launch$ cd odroid@odroid:~$ export ROS_BOOST_LIB_DIR_NAME=/usr/share/doc/ odroid@odroid:~$ echo $ROS_BOOST_LIB_DIR_NAME /usr/share/doc/ odroid@odroid:~$ ls /usr/share/doc/ | grep boost-regex libboost-regex-dev libboost-regex1.54-dev libboost-regex1.54.0 odroid@odroid:~$ rosboost-cfg --libs regex Traceback (most recent call last): File "/opt/ros/indigo/bin/rosboost-cfg", line 35, in rosboost_cfg.main() File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 350, in main output = libs(ver, options.libs.split(',')) File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 286, in libs s += find_lib(ver, lib, True) + " " File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 251, in find_lib raise BoostError('Could not locate library [%s], version %s in lib directory [%s]'%(name, ver, dir)) rosboost_cfg.rosboost_cfg.BoostError: "Could not locate library [regex], version (1, 54, 0, '/usr', '/usr/include', True, True) in lib directory [/usr/share/doc/]" and same error on minimal.launch changed ROS_BOOST_LIB_DIR_NAME to /usr/lib/arm-linux-gnueabihf/ based on a webpage that I can't remember, but could find again if needed. This got rid of the errors in roswtf minimal.launch, but robot_state_publisher still fails when it is run testing on a amd64 install roswtf minimal.launch generates the same errors, but minimal.launch runs successfully, so it would appear that was a dead end. running with gdb trace as requested produces this setting /run_id to 5d69beda-02c0-11e5-9ec8-001e06c2b101 process[rosout-1]: started with pid [6778] started core service [/rosout] process[robot_state_publisher-2]: started with pid [6796] process[diagnostic_aggregator-3]: started with pid [6798] [tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device] [tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device] [tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device] process[mobile_base_nodelet_manager-4]: started with pid [6820] process[mobile_base-5]: started with pid [6858] process[cmd_vel_mux-6]: started with pid [6914] process[bumper2pointcloud-7]: started with pid [6974] process[turtlebot_laptop_battery-8]: started with pid [7040] process[capability_server-9]: started with pid [7060] [tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device] do those messages mean I need to run roslaunch as root ? note - the turtlebot is not plugged in as I am at home at the moment in case any of those are related to that - launch previously worked with no turtlebot ok messages are benign https://github.com/ros/ros_comm/issues/223 but means there is nothing printed there that seems to be useful - and presumably as robot_state_publisher isn't crashing now there is no core dump generated ? looking in .ros there is a file called roscore-11311.pid odroid@odroid:~/.ros$ cat roscore-11311.pid 6829odroid@odroid:~/.ros$ tried with the screen version, but get odroid@odroid:~$ screen -D -R Aborted odroid@odroid:~$ when try to look at gdb tried the screen version again, and it appears to have worked, result in screen is here GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1 Copyright (C) 2014 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "arm-linux-gnueabihf". Type "show configuration" for configuration details. For bug reporting instructions, please see:. Find the GDB manual and other documentation resources online at:. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /home/odroid/ros/devel/lib/robot_state_publisher/robot_state_publisher...(no debugging symbols found)...done. (gdb) but typing bt at gdb prompt gets response No stack

Empty transforms using Robot State Publisher

$
0
0
Hi guys, I'm trying to broadcast moving joint states using my robot state publisher. I echoed the topic on which I broadcast my state, all I get is : transforms: [] --- Here's my code section responsible for broadcasting the state : auto transforms = std::map(); while (publish) { transforms.insert(std::make_pair("base_link", controller->getJointCurrentAngle( Controller::JOINT_ID(Controller::JOINT::BASE_JOINT_ID)))); transforms.insert(std::make_pair("joint_1", controller->getJointCurrentAngle( Controller::JOINT_ID(Controller::JOINT::SHOULDER_JOINT_ID)))); transforms.insert(std::make_pair("joint_2", controller->getJointCurrentAngle( Controller::JOINT_ID(Controller::JOINT::ELBOW_JOINT_ID)))); transforms.insert(std::make_pair("joint_3", controller->getJointCurrentAngle( Controller::JOINT_ID(Controller::JOINT::WRIST_JOINT_ID)))); publisher.get()->publishTransforms(transforms,ros::Time::now(),""); transforms.clear(); usleep(1000); } When I use publishFixedTransform("") instead of publishTransforms, I get my transforms correctly published to the topic, but I cannot move them since I use a KDL tree from an URDF file to create my robot model. Do you guys have any tip of what I'm doing wrong ? Thanks !

TF: request latest transform -> interpolation into the future

$
0
0
As stated in the [tutorial](http://wiki.ros.org/tf/Tutorials/tf%20and%20Time%20%28Python%29) the following code listener.waitForTransform( 'X', 'Y', rospy.Time(), rospy.Duration(5)) (a,b) = listener.lookupTransform( 'X', 'Y', rospy.Time()) should wait until any transformation between X and Y available is and then return it. But instead I get ExtrapolationException: Lookup would require extrapolation into the future. What do I have to do to get just the latest available transformation? The problem occurs when I publish joint values and then try to get a transformation published by the robot_state_publisher. Everythin is on the same pc.

How to print pose of a robot using robot_state_publisher

$
0
0
Hi, I want to print the pose of my robot using robot_state_publisher. I am adding the following code in my launch file > type="state_publisher"> name="robot_state_publisher"> name="publish_frequency" type="double"> value="30.0"/> But, I am not sure, where can I see the pose of the robot? Is there any way I can print it ?

No transform from links to odom in rviz

$
0
0
I built an URDF model from scratch and launched successfully in gazebo. Then i added the differential_drive and joint_state plug-ins to the urdf model as followsWheel_LWheel_Rbase_plate0.2350.12trueCastor_F, Castor_R Finally i launched the model in Gazebo and when visualized in rviz, there comes the error "no transform from [links] to [odom]" ref the image below ![image description](/upfiles/1452099317382477.png) The bizarre is the error doesn't occur when the fixed frame is set to any links. I have launched the empty world and spawned the robot in it. I have also launched robot_state_publisher and below is my launch file

Tf origin is away from the base_link

$
0
0
I have built my differential drive mobile robot in solidworks and converted that to URDF file using soliworks2urdf convertor. I successfully launched and robot and simulated with tele-operation node. Since i am intended to use navigation stack in i viewed the transform of the robot in rviz which resulted as below. ![image description](/upfiles/14522727952715033.png) As you can see the base plate is the one which supports the wheels and castors but the tf of base plate is shown away from the actual link and even odom is away from the model. Where have i gone wrong and how to fix this. Refer the URDF of model below. Wheel_LWheel_RBase_plate0.2350.12trueCastor_F, Castor_R

How can I use tf_keyboard_cal to calibrate my camera position?

$
0
0
I would like to be able to change the robot-->camera tf via keyboard. But if I remove the fixed robot-->camera transformation from my urdf and publish the correct tf via tf_keyboard_cal the `robot_state_publisher` complains about two tf trees. What can I do to circumvent this problem?

possible to use tf for robot_state_publisher?

$
0
0
hi, i got a urdf file with two bodies and one joint. With the robot_state_publisher, i can send joint_states and the robot is moving in rviz to this joint_state. I got tf of the second body from real-world and want to "connect" this tf to the robot_state_publisher directly, instead of sending joint_states ? is this possible ?

uwsim_binary: symbol lookup error robot_state_publisher

$
0
0
Installed uwsim on Ubuntu 14.04 through apt-get. Got this when running `rosrun uwsim uwsim`: /opt/ros/jade/lib/uwsim/uwsim_binary: symbol lookup error: /opt/ros/jade/lib/libuwsim.so: undefined symbol: _ZN21robot_state_publisher19RobotStatePublisherC1ERKN3KDL4TreeERKN4urdf5ModelE I use `ros-jade-desktop-full` package, installed through `apt-get`.

slow updates of links of a robot in RViz [RobotModel]

$
0
0
Hello, I have written a description package for iCub humanoid robot. It basically consist of a urdf model of the robot to visualize in RViz and also a ros-yarp bridge which publishes the joint positions of all joints on the robot. (for now bridge takes the data from robot simulator.) The `/joint_states` topic is published at 50 Hz from the bridge and I am running launch file with `/robot_state_publisher` as it follows: But in this situation, the RobotModel in RViz follows the simulator with almost 1 second delay even robots move only one joint. I have looked every topic (joint_states, tf etc..) and they are all fine publishing the data at desired rate. Do you have any idea why RobotModel lags ? The package can be found on [here](https://github.com/tkelestemur/icub_description). Edit: According to the tf frame tree most of the tf data is published at 1.250Hz which is very slow. Only base_link is published at 50Hz. So the problem is somehow related to `/robot_state_publisher`

tf_prefix and tf2_web_republisher (URDF visualization in browser)

$
0
0
Hello everybody ! I have manage to display my custom urdf file in my browser by using [this tutorial](http://wiki.ros.org/urdf/Tutorials/Using%20urdf%20with%20robot_state_publisher). However, when I run what I've done alongside my actual robot (or simulation), the visualization does not display properly (several parts of the robot are displayed at the same point). I am guessing the problems comes from an interference between the tf tree of my robot and the tf tree of my visualization. (These two trees have some links in common but are different). I tried adding a "tf_prefix" parameter to my robot_state_publisher by doing this "visualisation" But when I launch everything I get the following error : [ERROR] [1468848677.857789028]: "Link1" passed to lookupTransform argument source_frame does not exist. Where Link1 is a link listed in my URDF file. Am I using the tf_prefix wrong? Did I not configure something? Should I load my URDF file in a special way ? I also read that tf_prefix doesn't work with all the packages. Is this the case with tf2_web_republisher?

Handling IMU and Odemtry data with robot_state_publisher

$
0
0
I've configured robot_state_publisher to capture all my JointState messages and reflect the correct pose in Rviz. However, my robot also has an IMU, which I'm not yet using. Would it be correct to use that to try and calculate the transformation between the base_footprint and the base_link? Or is that handled by a node other than robot_state_publisher?

How to visualize a real robot in Rviz

$
0
0
How do you run Rviz so that it shows the joint positions of a real robot in real-time? I've written a URDF file descibing a simple 2-wheeled cylindrical robot with a pan/tilt head, and I can visualize it in Rviz perfectly by running the launch file: I also implemented a node, running on the actual robot, that publishes angles of the pan/tilt head as JointState messages on the /joint_state topic, and when I manually move the joints, `rostopic echo /joint_states` shows messages like: header: seq: 21 stamp: secs: 1474249855 nsecs: 537719964 frame_id: '' name: ['base_link_to_neck_joint'] position: [6.230825429619756] velocity: [] effort: [] However, when I run that same launch file on the robot, along with my custom joint publisher node, Rviz only shows the joints flicker briefly, then reset back to the default position. Why is this? I tried removing the joint_state_publisher node in the launch file, thinking that was interfering with my custom publisher, but then when I launch Rviz, my model looks all mangled and it reports "no transformation" for all of my links. How do I fix that?

Unable to start robot state publisher due to missing library

$
0
0
When I try to launch robot_state_publisher with the launch file: it dies with the error: /opt/ros/kinetic/lib/robot_state_publisher/state_publisher: error while loading shared libraries: librobot_state_publisher_solver.so: cannot open shared object file: No such file or directory Obviously, I have the ros-kinetc-robot-state-publisher package installed. Why is it throwing this error? Searching apt-cache finds nothing providing that .so file.

How to show robot tipping over in Rviz

$
0
0
I've created a URDF model of my robot, linked it to Tf and configured Rviz to show my robot and show joint rotations in realtime when the actual robot moves. My robot also has an IMU that can measure the yaw, pitch and roll. If I tip over my robot, I want this to be reflected in Rviz. How do you accomplish this? The joints are automatically updated based on the URDF and associated JointState messages, but there's no joint between the robot and the ground. How do I make Rviz tilt the model proportional the angles shown in my IMU messages and/or moving around as the IMU and odometry change?

robot_state_publisher node does not work correctly on TK1 platform

$
0
0
Trying to run navigation stack on Jetson ТК1 we discovered that ROS robot_state_publisher node does not work correctly on TK1 platform. It doesn't publish joints with "fixed" links. On the Intel netbook it works correctly. Does anyone has such issue on TK1? ( ROS Indigo. JetPack-L4T-2.1-linux-x64 ).

Does the robot_state_publisher support sensor_msgs/MultiDOFJointState messages?

$
0
0
Hi, I found the message definition sensor_msgs/MultiDOFJointState and was expecting robot_state_publisher to also support it: https://github.com/ros/common_msgs/blob/jade-devel/sensor_msgs/msg/MultiDOFJointState.msg What I had in mind was that the node would populate TF with the current transforms taking the respective frame_ids from the URDF. When searching the repository, however, I could not find any usage of this message definition: https://github.com/ros/robot_state_publisher/blob/kinetic-devel/include/robot_state_publisher/joint_state_listener.h Do I see this correctly that robot_state_publisher does not support this message definition? If not, 1. is there an established good practice of using multi-DOF joints with robot_state_publisher? 2. is there a good reason that speaks against adding support for sensor_msgs/MultiDOFJointState to robot_state_publisher? Best, Georg.
Viewing all 72 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>