Hello,
I am trying to automatically generate a bunch of videos of a robot manipulating objects. I figured out a way to record the screen from gazebo or rviz, but I can't find any tutorial about how to programatically move the camera around the robot.
Do you know if in either gazebo or rviz the viewpoint can be set programatically?
Gazebo shows XYZ and RPY as you move with the mouse so it seems reasonable to think that one can set those. Maybe in rviz, I should set the fixed frame to be a frame offset of the head of the robot?
↧
Programatically set the camera pose in gazebo or rviz.
↧
Gmapping in Gazebo with Hokuyo: problems due to max range measurements
Hi all,
I am simulating gmapping in Gazebo with my Turtlebot. I have attached an Hokuyo laser on my (virtual) turtlebot and want to use this for gmapping instead of the virtual kinect laser.
The problem I have is that the virtual Hokuyo returns measurements at its maximum range. E.g. it would return a circle of measurment points of it would be placed in an empty world. Gmapping uses these measurements as if obstacles are detected there. This completely messes up the scan matching process, as it tries to match everything with the non-existent circular wall.
If I use the Hokuyo on my real robot, it only returns true measurements, i.e. if it cannot detect something at a certain angle, it will not return any data point (as if the distance seems infinite).
How should I adapt my virtual Hokuyo to not return data points when it has not detected anything at its max range?
Or alternatively, is there any way to adapt gmapping to cope with such measurements (which less elegant I think, as the difference between simulation and real experiments persists in other fields of measurement usage)?
Please see the screenshots attached: rviz clearly shows the 'circular non-existent' walls. I have only turned around in circles for this screenshot. If I would also move around with the robot, the scan-matching trouble becomes clear. I also have these issues (but to a lesser extend) when using it in a gazebo indoor building world (willowgarage world).
**Gazebo world (with laser visualized):**

**rviz result:**

Any help would be very much appreciated.
Regards,
Koen
UPDATE:
A slight addition to my comment on dornheges answer: the maxRange can probably better be omitted, as skipped/missing measurements lead to the conclusion that certain space is empty, although the robot cannot actually see this. See for example the explored space outside of the room in the screenshot... Clearly, the robot couldnt know this: it is based on the assumption that no measurment equals free space.
Does anybody know a nice way to still use this 'space is free if nothing is measured' feature, without running into this glitch (i.e. make it robust against skipped/missing/erroneous measurements)?

↧
↧
Display MoveIt Collison Objects in Gazebo
How can i display collision objects i added to my MoveIt planning scene in Gazebo?
I added them like:
# publish a demo scene
scene = PlanningSceneInterface()
p = PoseStamped()
p.header.frame_id = robot.get_planning_frame()
# add a box
p.pose.position.x = 0.7
p.pose.position.y = -0.08
p.pose.position.z = 0.1
scene.add_box("box", p, (0.15, 0.15, 0.15))
They are all diplayed well in MoveIt but not in Gazebo right now. The robot is displayed in gazebo as well. Im running ROS Indigo on Ubuntu 14.04.
Thanks for your support!
↧
Turn off Gazebo recording from launch file
I'm using gazebo2 (2.2.3) and running a lot of simulations and I don't need the recording data so I'd like to turn it off. I'm using a launch file to start the simulator. How can I turn off recording of state files from the launch file?
↧
Gazebo Immediately Close on Startup
Hello all,
I am using Ros indigo on Ubuntu 14.04 For some reason I cannot start Gazebo. When I execute gazebo on terminal, it opens the window but after some seconds, it terminates and closes the window. I tried to update Gazebo from 2.2 to 2.2.6 as stated in http://answers.ros.org/question/199401/problem-with-indigo-and-gazebo-22/ I also installed gtk2-engines but none of them worked.
I suspect that it is because of my old graphics card Intel 945GM but I am not sure.
Here is my terminal output:
yusuf@yusuf-HP-Pavilion-dv6000-RD870AV-ABA:~$ gazebo
Gazebo multi-robot simulator, version 2.2.6
Copyright (C) 2012-2014 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org
Msg Waiting for master
Msg Connected to gazebo master @ http://127.0.0.1:11345
Msg Publicized address: 10.36.54.197
Gazebo multi-robot simulator, version 2.2.6
Copyright (C) 2012-2014 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org
Msg Waiting for master
Msg Connected to gazebo master @ http://127.0.0.1:11345
Msg Publicized address: 10.36.54.197
yusuf@yusuf-HP-Pavilion-dv6000-RD870AV-ABA:~$
Content of my `/usr/share/gazebo/setup.sh`:
export GAZEBO_MASTER_URI=http://localhost:11345
export GAZEBO_MODEL_DATABASE_URI=http://gazebosim.org/models
export GAZEBO_RESOURCE_PATH=/usr/share/gazebo-2.2:/usr/share/gazebo_models:${GAZEBO_RESOURCE_PATH}
export GAZEBO_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/gazebo-2.2/plugins:${GAZEBO_PLUGIN_PATH}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/x86_64-linux-gnu/gazebo-2.2/plugins
export OGRE_RESOURCE_PATH=/usr/lib/x86_64-linux-gnu/OGRE-1.8.0
Thanks in advance,
Yusuf
↧
↧
running gazebo on VirtualBox
Did anyone try running gazebo on VirtualBox? Whenever I am trying to run it, it crashes and the screen goes black.
↧
Controller spawner could not find expected controller manager
I am following tutorial here: [gazebo: ROS control][1]
I cloned the repo and ran it but when I run:
[1]: http://gazebosim.org/tutorials?tut=ros_control&cat=connect_ros
roslaunch rrbot_control rrbot_control.launch
I get this warning:
[WARN] [1489217371.134438, 46.637000]: Controller Spawner couldn't find the expected controller_manager ROS interface.
I am using ros-kinectic on ubuntu 16.04. I do not know why this is happening. The code already has `gazebo_ros_control plugin` in the robot model.
Thanks in advance.
↧
Gazebo: Invalid tag: Cannot load command parameter [robot_description]
My original package worked well. But after I added a `mavlink_interface_macro` to my xacro file of the model, I got the following error:
when processing file: /home/u23/WorkSpace/03.fixedwing_sim_pix/04.Firmware/Firmware/Tools/sitl_gazebo/models/techpod/techpod_base.xacro
unknown macro name: xacro:mavlink_interface_macro
when processing file: /home/u23/WorkSpace/03.fixedwing_sim_pix/04.Firmware/Firmware/Tools/sitl_gazebo/models/techpod/techpod_base.xacro
while processing /home/u23/WorkSpace/03.fixedwing_sim_pix/04.Firmware/Firmware/launch/spawn_fixed_wing.launch:
Invalid tag: Cannot load command parameter [robot_description]: command [ /opt/ros/jade/share/xacro/xacro.py '/home/u23/WorkSpace/03.fixedwing_sim_pix/04.Firmware/Firmware/Tools/sitl_gazebo/models/techpod/techpod_base.xacro' enable_logging:=false enable_ground_truth:=true log_file:=techpod wait_to_record_bag:=false uav_name:=techpod namespace:=techpod] returned with code [2].
Param xml is
The traceback for the exception was written to the log file
I checked the xacro file to make sure the `mavlink_interface_macro` was defined and added in the corrected way. Before I added it the param `[robot_description]` was also successfully loaded.
I tried some ways I saw from other examples, like:
rosrun xacro xacro my_model_name.xacro > /tmp/old.xml
I got:
Traditional processing is deprecated. Switch to --inorder processing!
To check for compatibility of your document, use option --check-order.
For more infos, see http://wiki.ros.org/xacro#Processing_Order
redefining global property: pi
when processing file: techpod_base.xacro
Undefined substitution argument namespace
when evaluating expression 'namespace'
when processing file: techpod_base.xacro
However the expression `namespace` works well when quoted in other `macro`.
I am confused of the relations between the two errors. I checked the log file, which shows:
Invalid tag: Cannot load command parameter [robot_description]: command [ /opt/ros/jade/share/xacro/xacro.py '/home/u23/WorkSpace/03.fixedwing_sim_pix/04.Firmware/Firmware/Tools/sitl_gazebo/models/techpod/techpod_base.xacro' enable_logging:=false enable_ground_truth:=true log_file:=techpod wait_to_record_bag:=false uav_name:=techpod namespace:=techpod] returned with code [2].
Param xml is
[roslaunch][ERROR] 2017-03-11 16:06:37,576: The traceback for the exception was written to the log file
[roslaunch][ERROR] 2017-03-11 16:06:37,577: Traceback (most recent call last):
File "/opt/ros/jade/lib/python2.7/dist-packages/roslaunch/__init__.py", line 307, in main
p.start()
File "/opt/ros/jade/lib/python2.7/dist-packages/roslaunch/parent.py", line 268, in start
self._start_infrastructure()
File "/opt/ros/jade/lib/python2.7/dist-packages/roslaunch/parent.py", line 217, in _start_infrastructure
self._load_config()
File "/opt/ros/jade/lib/python2.7/dist-packages/roslaunch/parent.py", line 132, in _load_config
roslaunch_strs=self.roslaunch_strs, verbose=self.verbose)
File "/opt/ros/jade/lib/python2.7/dist-packages/roslaunch/config.py", line 453, in load_config_default
raise RLException(e)
`RLException: while processing`
/home/u23/WorkSpace/03.fixedwing_sim_pix/04.Firmware/Firmware/launch/spawn_fixed_wing.launch:
Invalid tag: Cannot load command parameter [robot_description]: command [` `/opt/ros/jade/share/xacro/xacro.py '/home/u23/WorkSpace/03.fixedwing_sim_pix/04.Firmware/Firmware/Tools/sitl_ga zebo/models/techpod/techpod_base.xacro' enable_logging:=false enable_ground_truth:=true log_file:=techpod
wait_to_record_bag:=false uav_name:=techpod namespace:=techpod] returned with code [2].
Param xml is
Could someone give me some instructions? I would be really grateful.
↧
gazebo/ros/iiwa/joint position
Hey,
I would like to send joint prositions for a model in gazebo from terminal .
I am working on it on wile.
Is there anyone who could give me some tpis how to do it?
I installed ros and i have model in gazebo also i can see the nodes but i really have no idea how to send joint position for the robot.
Thank you for helping
have a nice day.
↧
↧
Prismatic joint with PositionJointInterface interferes with Gazebo physics
I working on a simulation model of a forklift using ROS control and Gazebo. I'm using a prismatic joint to simulate the piston moving the forks up and down. Since I added a PositionJointInterface to the joint transmission I have been having with the physics. It seams to fix the joint in place. If I put the forklift in the air it hangs there, swinging by the joint, instead of falling down. This does not happen if I use the EffortJointInterface.
Is this a bug or am I using the position controller incorrectly?
Here is the transmission
transmission_interface/SimpleTransmission PositionJointInterface PositionJointInterface 1
Here is the joint and link definition

↧
Gazebo plugin subscribe to ROS topic
On this [page](http://gazebosim.org/tutorials?tut=guided_i6), I found a description on how to subscribe with a gazebo plugin to a ROS topic. But some questions came up.
With the following piece of code a ros node with name gazebo_client is initialized? What is ros::init_options::NoSigintHandler for?
// Initialize ros, if it has not already bee initialized.
if (!ros::isInitialized())
{
int argc = 0;
char **argv = NULL;
ros::init(argc, argv, "gazebo_client", ros::init_options::NoSigintHandler);
}
The name of the node is already set. So, why do I need reset for?
// Create our ROS node. This acts in a similar manner to
// the Gazebo node
this->rosNode.reset(new ros::NodeHandle("gazebo_client"));
I don't understand ros::SubscribeOptions perfectly. Could someone explain how it actually works and explain what the arguments are for? Also, what does rosQueue do?
// Create a named topic, and subscribe to it.
ros::SubscribeOptions so = ros::SubscribeOptions::create(
"/" + this->model->GetName() + "/vel_cmd",
1,
boost::bind(&VelodynePlugin::OnRosMsg, this, _1),
ros::VoidPtr(), &this->rosQueue);
What is the purpose of this piece of code?
// Spin up the queue helper thread.
this->rosQueueThread = std::thread(std::bind(&VelodynePlugin::QueueThread, this));
Here is the code for QueueThread
/// \brief ROS helper function that processes messages
private: void QueueThread()
{
static const double timeout = 0.01;
while (this->rosNode->ok())
{
this->rosQueue.callAvailable(ros::WallDuration(timeout));
}
}
Does it do the same work as ros::spinOnce() or as ros::spin()? What exactly is it for? Also, why is it called with std::thread?
↧
sdf::elementPtr ?
Hi,
I was going to add a `mavlink_gazebo_interface` (a gazbeo plugin) to my robot model in gazebo, but the model could not be loaded successfully for unknown reasons.
I checked and find that, my model was described in `xacro` form, but I found one of the inlet parameters of `mavlink_gazebo_interface.cpp` is an `sdf::elementPtr` element. I used to use the plugin in a model described in a sdf file, which worked well.
I find difficult for me to find the difinition of `sdf::elementPtr`, since I am new to C++.
I wonder if it is acceptable if I provide a xacro file for `sdf::elementPtr` as an inlet parameter ?
Or, could someone provide any instructions for me to define a new one (compared with `sdf::elementPtr`) suitable for me ?
I would be really grateful.
Yajing Wang
↧
Gazebo: Could not load controller, JointTrajectoryController does not exist (Mastering ROS chapter 10)
Hi!
I am new in ROS, and I was reading a book "Mastering ROS".
But I am having an issue with loading controllers in Gazebo, from chapter 10. Working with perception using MoveIt! and Gazebo. Even though I just copied code from the repo. (Actually, the same issue appeared on chapter 3 or 4).
Logs are following:
[ERROR] [1486485132.488395779, 0.283000000]: Could not load controller 'seven_dof_arm_joint_controller' because controller type 'position_controllers/JointTrajectoryController' does not exist.
[ERROR] [1486485132.488718126, 0.283000000]: Use 'rosservice call controller_manager/list_controller_types' to get the available types
[INFO] [1486485132.533815, 0.295000]: Started controllers: joint_state_controller
[ERROR] [1486485133.491534, 0.560000]: Failed to load seven_dof_arm_joint_controller
[INFO] [1486485133.494729, 0.560000]: Loading controller: gripper_controller
[ERROR] [1486485133.520919999, 0.566000000]: Could not load controller 'gripper_controller' because controller type 'position_controllers/JointTrajectoryController' does not exist.
[ERROR] [1486485133.521358891, 0.566000000]: Use 'rosservice call controller_manager/list_controller_types' to get the available types
[ERROR] [1486485134.523407, 1.095000]: Failed to load gripper_controller
I think, it is because I'm using Ubuntu 16.04 and Kinetic, whereas in the book the system was 14.04 and Indigo.
How can I resolve this issue? Any ideas?
EDIT1: I changed some urdf files because I had same issue as [here](https://github.com/qboticslabs/mastering_ros/issues/11)
UPD: I've resolved it by installing all available controllers: `sudo apt-get install ros*controller*`
I know, it is not the right way, but somehow I couldn't find anywhere that I can install joint controller itself `sudo apt-get ros-kinetic-joint-trajectory-controller`. Maybe it was too obvious. I found it in the new packages list when I ran the command above.
`The following NEW packages will be installed:
ros-kinetic-bhand-controller ros-kinetic-diff-drive-controller ros-kinetic-dynamixel-controllers ros-kinetic-dynamixel-driver ros-kinetic-dynamixel-msgs ros-kinetic-dynamixel-sdk
ros-kinetic-dynamixel-workbench-controllers ros-kinetic-dynamixel-workbench-msgs ros-kinetic-dynamixel-workbench-toolbox ros-kinetic-force-torque-sensor-controller
ros-kinetic-gripper-action-controller ros-kinetic-imu-sensor-controller ros-kinetic-joint-trajectory-controller ros-kinetic-kobuki-controller-tutorial ros-kinetic-md49-base-controller
ros-kinetic-md49-messages ros-kinetic-md49-serialport ros-kinetic-nav-pcontroller ros-kinetic-robot-controllers ros-kinetic-robot-controllers-interface ros-kinetic-robot-controllers-msgs
ros-kinetic-robotis-controller-msgs ros-kinetic-ros-controllers ros-kinetic-rqt-controller-manager ros-kinetic-rqt-joint-trajectory-controller ros-kinetic-velocity-controllers
ros-kinetic-view-controller-msgs ros-kinetic-yocs-diff-drive-pose-controller ros-kinetic-yocs-safety-controller`
Thanks!
↧
↧
When using navigation, map and global map couldn't delete obstacles
Hello,
I'm new in ROS, and I'm trying to use navigation with turtlebot.
My ROS and Ubuntu version as following:
Ubuntu: 14.04
ROS: indigo
**Question 1:**
I run my launch file (`$ roslaunch turtlebot_gazebo turtlebot_navigation.launch`),
and use "2D Nav Goal" of rviz to navigate,
when I removed the wall of obstacle, I found the **map** and **global map** couldn't delete obstacles.
[gazebo comparison](http://imgur.com/a/Vw3Id)
[rviz comparison](http://imgur.com/a/1DQq9)
How could I delete the obstacle on rviz ?
I had modified the parameters of the following file, but it's no use.
**costmap_common_params.yaml**
obstacle_range: 5.5
raytrace_range: 10.0
**global_costmap_params.yaml**
global_frame: /odom
update_frequency: 20.0
publish_frequency: 20.0
static_map: false
**local_costmap_params.yaml**
update_frequency: 20.0
publish_frequency: 20.0
**Question 2:**
From the rviz map, gmapping seems not handled well in the loop closure,
is there any parameters need to change ?
[rviz result](http://imgur.com/a/1DQq9)
My launch file and move_base configuration as following:
**turtlebot_navigation.launch**:
**costmap_common_params.yaml**
max_obstacle_height: 0.60 # assume something like an arm is mounted on top of the robot
# Obstacle Cost Shaping (http://wiki.ros.org/costmap_2d/hydro/inflation)
robot_radius: 0.20 # distance a circular robot should be clear of the obstacle (kobuki: 0.18)
# footprint: [[x0, y0], [x1, y1], ... [xn, yn]] # if the robot is not circular
map_type: voxel
obstacle_layer:
enabled: true
max_obstacle_height: 0.6
origin_z: 0.0
z_resolution: 0.2
z_voxels: 2
unknown_threshold: 15
mark_threshold: 0
combination_method: 1
track_unknown_space: true
obstacle_range: 5.5
raytrace_range: 10.0
origin_z: 0.0
z_resolution: 0.2
z_voxels: 2
publish_voxel_map: false
observation_sources: scan bump
scan:
data_type: LaserScan
topic: scan
marking: true
clearing: true
min_obstacle_height: 0.25
max_obstacle_height: 0.35
bump:
data_type: PointCloud2
topic: mobile_base/sensors/bumper_pointcloud
[hide preview]
marking: true
clearing: false
min_obstacle_height: 0.0
max_obstacle_height: 0.15
# for debugging only, let's you see the entire voxel grid
#cost_scaling_factor and inflation_radius were now moved to the inflation_layer ns
inflation_layer:
enabled: true
cost_scaling_factor: 5.0
inflation_radius: 0.5
static_layer:
enabled: true
**global_costmap_params.yaml**
global_costmap:
global_frame: /odom
robot_base_frame: /base_footprint
update_frequency: 20.0
publish_frequency: 20.0
static_map: false
transform_tolerance: 0.5
plugins:
- {name: static_layer, type: "costmap_2d::StaticLayer"}
- {name: obstacle_layer, type: "costmap_2d::VoxelLayer"}
- {name: inflation_layer, type: "costmap_2d::InflationLayer"}
**local_costmap_params.yaml**
local_costmap:
global_frame: odom
robot_base_frame: /base_footprint
update_frequency: 20.0
publish_frequency: 20.0
static_map: false
rolling_window: true
width: 4.0
height: 4.0
resolution: 0.05
transform_tolerance: 0.5
plugins:
- {name: obstacle_layer, type: "costmap_2d::VoxelLayer"}
- {name: inflation_layer, type: "costmap_2d::InflationLayer"}
Thank you for your help.
↧
Gazebo crashes on self collide: Param.cc 'inf'
Hi guys.
I was altering some minor values in our URDF and now Gazebo crashes shortly after startup. I was only changing small things, like controller PID's, friction and damping etc, and only minor alterations of probably +/- 20%. When launching Gazebo without the ros_control controllers running, the program crashes when the boom slowly falls and touches the blade (our robot is a small excavator). The error output is shown below (comes up 20 times per crash):
Error [Param.cc:451] Unable to set value [inf inf -inf -2.15675 -0.36903 -0.86877] for key[pose]
Error [Param.cc:451] Unable to set value [inf inf -inf -1.62554 -1.12305 -1.90234] for key[pose]
Error [Param.cc:451] Unable to set value [inf inf -inf -1.30275 0.434637 2.40115] for key[pose]
Error [Param.cc:451] Unable to set value [inf inf -inf 0.956331 -0.661333 -2.4084] for key[pose]
Error [Param.cc:451] Unable to set value [inf inf inf -1.15322 0.249827 -0.069431] for key[pose]
Error [Param.cc:451] Unable to set value [inf inf inf 3.07698 0.590642 1.29578] for key[pose]
The same error occurs when you turn the controllers on. You may be able to move the robot for a bit before it self-collides and then it crashes. Everything seems to work fine until a self-collision happens, but just a few hours ago everything was fine. Self collision is turned off for all the links, but we tried on/off combinations with no luck.
Ubuntu 16.04 with Kinetic and Gazebo 7. Willing to try any possible solutions you think of. Cheers guys.
↧
Using Gazebo Simulator with ROSARIA
In the tutorial in http://wiki.ros.org/ROSARIA/Tutorials/How%20to%20use%20ROSARIA#Topics_and_Commands on "How to Use ROSARIA", under the section "Using MobileSim simulator", it is stated that for more fully featured simulation, one must use stdr_simulator, Stage or Gazebo instead. However details on how to go about using these simulators with ROSARIA are not given.
Please assist me on how to go about doing this, particularly using Gazebo with ROSARIA. I have a Pioneer3AT simulation running in Gazebo, but when I attempt running the ROSARIA node, it returns the error:
bongzaseko@bongzaseko-OptiPlex-9020:~/GoogleDrive/ros/rosaria/catkin_ws$ rosrun rosaria RosAria
[ INFO] [1489585096.015996023]: RosAria: set port: [localhost:11311]
Connnecting to robot using TCP connection to localhost:11311...
Connected to remote host localhost through tcp.
Syncing 0
No packet.
Syncing 0
No packet.
Syncing 0
No packet.
Syncing 0
No packet.
Robot may be connected but not open, trying to dislodge.
Syncing 0
No packet.
Robot may be connected but not open, trying to dislodge.
Syncing 0
No packet.
Could not connect, no robot responding.
Failed to connect to robot.
[ERROR] [1489585102.454210966, 813.697000000]: RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)
[FATAL] [1489585102.454259591, 813.697000000]: RosAria: ROS node setup failed...
↧
agvs_sim kinetic joint_states not published
I have been trying to run agvs_sim tutorials in kinetic version .http://wiki.ros.org/agvs_sim/tutorials For the following command
```
roslaunch agvs_robot_control agvs_robot_control.launch
```
I am getting the following response.
```
AGVSControllerClass::starting
```
It is continous in loop.
After investigating,
```
rostopic echo /agvs/joint_state
```
we found the following warning message
```
WARNING: no messages received and simulated time is active.
Is /clock being published?
```
What would be the issue?
↧
↧
Gazebo plugin with custom ROS message
Hello,
I've a Gazebo plugin and a ROS package. The Gazebo plugin is able to subscribe to a ROS topic and receive ROS
messages. The message is of type std_msgs::Float32 just for testing. My ROS package uses also a custom ROS message (called "Cables.msg"), that works just fine inside it.
But now I also want my Gazebo plugin to connect to a ROS topic that uses that custom ROS message. So I need to
integrate the custom ROS message into my Gazebo plugin somehow. I don't really know how to do that.
I have a Cmake file that builds my custom ROS message with catkin (the built message "Cables.h" is then in the corresponding devel folder as expected). But the Gazebo plugin is not built using catkin, so I don't know how to connect my Gazebo plugin to the custom ROS message.
Thank you very much,
skm
P.S: I was not sure if I should ask my question here or on the "Gazebo Answers" page. But I think here are more people
who know how to work with custom ROS messages, so I asked my question here.
Edit:
I found a solution (sort of): The custom ROS messages were already build in the ROS package. So I just copied the generated header files (e.g. "Cables.h") to my Gazebo plugin project and included the generated headers in my code. Works fine to receive custom ROS messages with the Gazebo plugin. But of course copying the compiled headers from another project is not an ideal solution.
↧
How to create a caster wheel (Urdf model)
I have built a 2 wheel robot and I have been trying for hours to put a correct caster wheel on it. I followed the logic of this [code](https://github.com/qboticslabs/mastering_ros/blob/master/chapter_2_codes/mastering_ros_robot_description_pkg/urdf/diff_wheeled_robot.urdf) in which a sphere with a fixed joint is used and I managed to make it work (or I thought so) until I commanded my robot to move. The movement was totally wrong. With the fixed joint sphere, the robot was bumping like crazy. Is there another way to create a caster wheel ?
Thanks for answering and for your time in advance.
↧
Can't launch Gazebo
Hi!
I just finished installing ros full desktop package and gazebo but when I run gazebo in terminal it simply doesn't launch. I'm going crazy since I can't find anyone else with this problem. I'm running it on a desktop with dedicated graphics. Does anyone have an idea of how to solve the problem?
Thanks!
EDIT: I'm using jade and gazebo5, btw
EDIT2: When I run gazebo --verbose it gives me:
Gazebo multi-robot simulator, version 5.4.0
Copyright (C) 2012-2015 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org
[Msg] Waiting for master.
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Publicized address: 192.168.1.86
Gazebo multi-robot simulator, version 5.4.0
Copyright (C) 2012-2015 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org
[Msg] Waiting for master.
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Publicized address: 192.168.1.86
[Err] [RTShaderSystem.cc:414] Unable to find shader lib. Shader generating will fail.[Err] [Server.cc:285] Could not open file[worlds/empty.world]
EDIT3: I noticed I have several gazebos in /usr/share folder. Gazebo3 and Gazebo5.4 and when I run this command:
export GAZEBO_RESOURCE_PATH=/usr/share/gazebo-5.0:/usr/share/gazebo_models:${GAZEBO_RESOURCE_PATH}
I am able to run gazebo but I have to do it every single time I open the terminal. Is there any way to make it permanent?
↧