Giter Club home page Giter Club logo

dolly's Introduction

Build and test

Dolly the robot

It's a sheep, it's a dolly, it's a following robot. Born to be cloned.

Packages for launching Dolly demo, which uses ROS 2 and either Gazebo or Ignition.

Gazebo Ignition
Dolly Gazebo Dolly Ignition

Versions

Dolly is known to work on the following systems.

Branch ROS Gazebo-classic Ignition OS
crystal Crystal Gazebo 9 Ubuntu Bionic
dashing Dashing Gazebo 9 Ubuntu Bionic, macOS Sierra
eloquent Eloquent Gazebo 9, Gazebo 11 Citadel Ubuntu Bionic
foxy Foxy Gazebo 11 Citadel Ubuntu Focal
galactic Galactic, Rolling Gazebo 11 Edifice, Fortress Ubuntu Focal

Packages

This repository contains the following packages:

  • dolly: Metapackage which provides all other packages.
  • dolly_follow: Provides node with follow logic.
  • dolly_gazebo: Robot model, simulation world and launch scripts for Gazebo-classic.
  • dolly_ignition: Robot model, simulation world and launch scripts for Ignition.
  • dolly_tests: Simulation-based automated tests

Install

It's encouraged that you build Dolly from source, to learn about how to develop your own packages. But in case you just want to give it a quick try, there are binaries available too.

From binaries

Dolly has been released into several ROS distros. These are the currently supported ones:

ROS Packages
Foxy ros-foxy-dolly
ros-foxy-dolly-follow
ros-foxy-dolly-gazebo
ros-foxy-dolly-ignition
Galactic ros-galactic-dolly
ros-galactic-dolly-follow
ros-galactic-dolly-gazebo
ros-galactic-dolly-ignition
Rolling ros-rolling-dolly
ros-rolling-dolly-follow
ros-rolling-dolly-gazebo
ros-rolling-dolly-ignition

From source

Install instructions for Ubuntu Bionic.

  1. Install at least one simulator, Gazebo or Ignition

  2. Install the appropriate ROS 2 version as instructed here.

  3. Clone Dolly, choose the branch according to your ROS distro:

     mkdir -p ~/ws/src
     cd ~/ws/src
     git clone https://github.com/chapulina/dolly -b <distro>
    
  4. Install dependencies:

     cd ~/ws
     rosdep install --from-paths src --ignore-src -r -y
    
  5. Build and install:

     cd ~/ws
     colcon build
    

Run

Gazebo-classic

If you had Gazebo installed when compiling Dolly's packages, Gazebo support should be enabled.

  1. Setup environment variables (the order is important):

     . /usr/share/gazebo/setup.sh
     . ~/ws/install/setup.bash
    

    Tip: If the command ros2 pkg list | grep dolly_gazebo comes up empty after setting up the environment, Gazebo support wasn't correctly setup.

  2. Launch Dolly in a city (this will take some time to download models):

     ros2 launch dolly_gazebo dolly.launch.py world:=dolly_city.world
    
  3. Launch Dolly in an empty world:

     ros2 launch dolly_gazebo dolly.launch.py world:=dolly_empty.world
    

Ignition

  1. Setup environment variables:

     . ~/ws/install/setup.bash
    

    Tip: If the command ros2 pkg list | grep dolly_ignition comes up empty after setting up the environment, Ignition support wasn't correctly setup.

  2. Launch Dolly in a station:

     ros2 launch dolly_ignition dolly.launch.py
    

Featured

dolly's People

Contributors

chapulina avatar formigarafa avatar frankhx9 avatar karsten1987 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

dolly's Issues

Publishing static transforms via Robot State Publisher

It would be nice if this demo also published the TF tree for the dolly robot so the sensor feedback from for things like odomity and laser scans from different reference frames could be jointly visualized together in rviz.

Visualizing the mesh geometry of the platform in rviz would also be helpful, as well a provide a good reference for how to juggle and integrate urdf/sdf for making a simulation package for a ros2 robot.

I really like how this demo is sort of like a rosetta stone between classic gazebo and ignition, and would like to reference it to students on how to write their own. So it'd be great if this had the same polish as say the old TB3 demos, but while still being a minimal yet complete reference example to fork from.

Failed to start demo for Crystal branch

Followed instructions but could not start demo, errors:
ubuntu@ubuntu18:~$ ros2 launch dolly_gazebo dolly.launch.py world:=dolly_empty.world
[INFO] [launch]: process[gzserver-1]: started with pid [26795]
[INFO] [launch]: process[gzclient-2]: started with pid [26796]
[INFO] [launch]: process[dolly_follow-3]: started with pid [26797]
Gazebo multi-robot simulator, version 9.11.0
Copyright (C) 2012 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.60.225.200
[Wrn] [FuelModelDatabase.cc:248] URI not supported by Fuel [dolly_empty.world]
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [dolly_empty.world]
[Err] [Server.cc:382] Could not open file[dolly_empty.world]
[Wrn] [Server.cc:341] Falling back on worlds/empty.world

Error in dolly_tests in ros-galactic: ‘class ignition::gazebo::v5::ServerConfig’ has no member named ‘SetHeadlessRendering’

Trying to build the ros2-galactic version of the dolly packages withcolcon build, but receiving errors.

Command in the dolly workspace to reproduce:
colcon build --symlink-install

The output:

[0.319s] WARNING:colcon.colcon_core.verb:Some selected packages are already built in one or more underlay workspaces:
	'dolly_follow' is in: /opt/ros/galactic
If a package in a merged underlay workspace is overridden and it installs headers, then all packages in the overlay must sort their include directories by workspace order. Failure to do so may result in build failures or undefined behavior at run time.
If the overridden package is used by another package in any underlay, then the overriding package in the overlay must be API and ABI compatible or undefined behavior at run time may occur.

If you understand the risks and want to override a package anyways, add the following to the command line:
	--allow-overriding dolly_follow

This may be promoted to an error in a future release of colcon-core.
Starting >>> dolly_follow
Finished <<< dolly_follow [8.43s]                     
Starting >>> dolly_gazebo
Starting >>> dolly_tests
Finished <<< dolly_gazebo [2.41s]                                   
--- stderr: dolly_tests                              
CMake Warning (dev) at /usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (message):
  Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
  available.  Run "cmake --help-policy CMP0072" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  FindOpenGL found both a legacy GL library:

    OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so

  and GLVND libraries for OpenGL and GLX:

    OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
    OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so

  OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
  compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
  /usr/lib/x86_64-linux-gnu/cmake/ignition-rendering5-ogre/ignition-rendering5-ogre-config.cmake:114 (find_package)
  /usr/share/cmake-3.16/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
  /usr/lib/x86_64-linux-gnu/cmake/ignition-rendering5/ignition-rendering5-config.cmake:204 (find_dependency)
  /usr/lib/x86_64-linux-gnu/cmake/ignition-gui5/ignition-gui5-config.cmake:98 (find_package)
  /usr/lib/x86_64-linux-gnu/cmake/ignition-gazebo5/ignition-gazebo5-config.cmake:98 (find_package)
  CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

/home/dani/Desktop/dolly_ws/src/dolly/dolly_tests/test/follow_ignition_TEST.cpp: In member function ‘virtual void DollyTests_Follow_Test::TestBody()’:
/home/dani/Desktop/dolly_ws/src/dolly/dolly_tests/test/follow_ignition_TEST.cpp:47:10: error: ‘class ignition::gazebo::v5::ServerConfig’ has no member named ‘SetHeadlessRendering’
   47 |   config.SetHeadlessRendering(true);
      |          ^~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/follow_ignition_TEST.dir/build.make:63: CMakeFiles/follow_ignition_TEST.dir/test/follow_ignition_TEST.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:100: CMakeFiles/follow_ignition_TEST.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed   <<< dolly_tests [9.13s, exited with code 2]

Summary: 2 packages finished [17.7s]
  1 package failed: dolly_tests
  1 package had stderr output: dolly_tests
  1 package not processed

Assertion failure when launching dolly_gazebo demo

Looks like the gzclient immediately crashes upon launching the dolly_gazebo demo.
To reproduce: see the rocker command below using the Docker image from #22 .

dolly_gazebo

$ rocker --nvidia --x11 --net=host --pulse chapulina/dolly:foxy
# ros2 launch dolly_gazebo dolly.launch.py world:=dolly_empty.world
[INFO] [launch]: All log files can be found below /root/.ros/log/2020-09-18-19-02-35-330746-cog-rw07-48
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [gzserver-1]: process started with pid [50]
[INFO] [gzclient   -2]: process started with pid [52]
[INFO] [dolly_follow-3]: process started with pid [54]
[INFO] [rviz2-4]: process started with pid [56]
[rviz2-4] QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
[rviz2-4] [INFO] [1600480957.158976587] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-4] [INFO] [1600480957.159160906] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[rviz2-4] [INFO] [1600480957.390392488] [rviz2]: Stereo is NOT SUPPORTED
[gzserver-1] [INFO] [1600481000.691536516] [dolly.diff_drive]: Wheel pair 1 separation set to [1.250000m]
[gzserver-1] [INFO] [1600481000.692158056] [dolly.diff_drive]: Wheel pair 1 diameter set to [0.300000m]
[gzserver-1] [INFO] [1600481000.693856497] [dolly.diff_drive]: Subscribed to [/dolly/cmd_vel]
[gzserver-1] [INFO] [1600481000.697634516] [dolly.diff_drive]: Advertise odometry on [/dolly/odom]
[gzserver-1] [INFO] [1600481000.699072195] [dolly.diff_drive]: Publishing odom transforms between [odom_demo] and [chassis]
[gzclient   -2] gzclient: /usr/include/boost/smart_ptr/shared_ptr.hpp:734: typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = gazebo::rendering::Camera; typename boost::detail::sp_member_access<T>::type = gazebo::rendering::Camera*]: Assertion `px != 0' failed.
[gzclient   -2] Aborted (core dumped)
[ERROR] [gzclient   -2]: process has died [pid 52, exit code 134, cmd 'gzclient   '].
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[dolly_follow-3] [INFO] [1600481016.273540185] [rclcpp]: signal_handler(signal_value=2)
[rviz2-4] [INFO] [1600481016.273646488] [rclcpp]: signal_handler(signal_value=2)
[INFO] [dolly_follow-3]: process has finished cleanly [pid 54]
[INFO] [rviz2-4]: process has finished cleanly [pid 56]
[ERROR] [gzserver-1]: process has died [pid 50, exit code -2, cmd 'gzserver dolly_empty.world                                                                   -s libgazebo_ros_init.so   -s libgazebo_ros_factory.so       '].

Failed to initialize init_options when running dolly.launch.py

Following the instructions from the tutorial, I end up in the following error:

ros2 launch dolly_gazebo dolly.launch.py world:=dolly_city.world

[ERROR] [launch.LaunchService]: Caught exception in launch (see debug for traceback
): Failed to initialize init_options: failed to load shared library of rmw implemen
tation. Exception: Cannot load library: /opt/ros/crystal/lib/librmw_fastrtps_cpp.so
: undefined symbol: _ZTVN8eprosima8fastrtps27DataRepresentationQosPolicyE, at /tmp/binarydeb/ros-crystal-rmw-implementation-0.6.1/src/functions.cpp:136, at /tmp/binarydeb/ros-crystal-rcl-0.6.5/src/rcl/init_options.c:55

Unable to visualize lidar ray on the rviz

Hi, I am trying out your dolly demo:

ros2 launch dolly_ignition dolly.launch.py

Everything load successfully. I can see the graphic on gazebo. I can see rviz received the message but I can't see the lidar ray on the rviz.

ubuntu@ubuntu-OptiPlex-7070:~$ ros2 topic list
/clicked_point
/dolly/cmd_vel
/dolly/laser_scan
/dolly/odometry
/initialpose
/move_base_simple/goal
/parameter_events
/rosout
/tf
/tf_static
ubuntu@ubuntu-OptiPlex-7070:~$ ros2 topic echo /dolly/laser_scan
header:
  stamp:
    sec: 113
    nanosec: 790000000
  frame_id: dolly/chassis/sensor_ray
angle_min: -1.0
angle_max: 1.0
angle_increment: 0.01005025114864111
time_increment: 0.0
scan_time: 0.0
range_min: 0.05000000074505806
range_max: 10.0
ranges: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, '...']
intensities: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, '...']

Fail loading model://gazebo

I could not load dolly_city.world unless I comment these lines: https://github.com/chapulina/dolly/blob/foxy/dolly_gazebo/worlds/dolly_city.world#L1898-L1909

Console looks like this when failing:

Starting >>> dolly_follow
Finished <<< dolly_follow [0.23s]
Starting >>> dolly_gazebo
Starting >>> dolly_ignition
[0.604s] WARNING:colcon.colcon_cmake.task.cmake.build:Could not run installation step for package 'dolly_ignition' because it has no 'install' target
Finished <<< dolly_ignition [0.14s]
Finished <<< dolly_gazebo [0.18s]
Starting >>> dolly
Finished <<< dolly [0.17s]

Summary: 4 packages finished [0.74s]
[INFO] [launch]: All log files can be found below /home/raf/.ros/log/2020-12-20-15-46-10-040884-block-19453
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [gzserver-1]: process started with pid [19455]
[INFO] [gzclient   -2]: process started with pid [19457]
[INFO] [dolly_follow-3]: process started with pid [19461]
[INFO] [rviz2-4]: process started with pid [19463]
[rviz2-4] [INFO] [1608432370.876768122] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-4] [INFO] [1608432370.876890403] [rviz2]: OpenGl version: 3 (GLSL 1.3)
[rviz2-4] [INFO] [1608432370.903182507] [rviz2]: Stereo is NOT SUPPORTED
[gzserver-1] Error [parser.cc:749] Could not find model.config or manifest.xml for the model
[gzserver-1] Error [parser.cc:749] Could not find model.config or manifest.xml for the model
[gzserver-1] Error [parser.cc:397] File [] doesn't exist.
[gzserver-1] Error Code 1 Msg: Unable to read file[]
[gzserver-1] Error Code 8 Msg: Error reading element <world>
[gzserver-1] Error Code 8 Msg: Error reading element <sdf>

It works fine without that block mentioned above.

Install dependencies: error

Hi, I am trying out through your dolly demo:
When I installed the dependencies, I got the following errors.

ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: dolly_ignition: Cannot locate rosdep definition for [ros_ign_gazebo] Continuing to install resolvable dependencies...

That's why I cannot source my workspace.
I am using ROS2_Eloquent and already installed ignition-citadel. I am also finding the error to fix and still not work. Can you give me any suggestion?

The city environment doesn't load properly in Gazebo

After following the instructions to install dolly from source, I've tried to launch dolly in Gazebo using: ros2 launch dolly_gazebo dolly.launch.py world:=dolly_city.world only an empty world is loaded. I get the following errors:
gazebo_dolly

I'm on Ubuntu 20.04, I've ROS2 Foxy, and Ignition Citadel installed.

Error on loading gazebo_pkg

Error :

opt/ros/foxy/lib/python3.8/site-packages/ament_index_python/resources.py", line 48, in get_resource
raise LookupError(
LookupError: Could not find the resource 'gazebo_ros' of type 'packages'

Ive followed the download instructions for ROS2 foxy on my Linux machine. (Link followed https://index.ros.org/doc/ros2/Installation/Foxy/Linux-Install-Debians/) I am not able to run 'ros2 launch dolly_gazebo dolly.launch.py world:=dolly_city.world' due to this error. Is there a fix for this? I tried finding ways to install 'gazebo_ros_pkgs' but to no avail.

My system is Ubuntu 20.04, I have downloaded Gazebo11 and ROS2 foxy as instructed.

ROS2 Foxy | Package 'dolly_ignition' not found

I'm not sure what may have gone wrong in packaging dolly_ignition for foxy release, but the binary apt release doesn't seem to install its own package directory in the ros2 distro share folder:

$ sudo apt install ros-foxy-dolly-ignition 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ros-foxy-dolly-ignition is already the newest version (0.3.0-1focal.20200911.235014).
The following packages were automatically installed and are no longer required:
  apturl apturl-common libatomic1:i386 libbsd0:i386 libcue2 libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libedit2:i386 libelf1:i386 libexpat1:i386 libffi7:i386
  libfprint-2-tod1 libgl1:i386 libgl1-mesa-dri:i386 libglapi-mesa:i386 libglvnd0:i386 libglx-mesa0:i386 libglx0:i386 libgsf-1-114 libgsf-1-common libllvm10:i386 libllvm9 libllvm9:i386 libnvidia-common-440
  libpciaccess0:i386 libplayerctl2 libsensors5:i386 libstdc++6:i386 libtracker-control-2.0-0 libtracker-miner-2.0-0 libvulkan1:i386 libwayland-client0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-randr0:i386 libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxshmfence1:i386
  libxxf86vm1:i386 mesa-vulkan-drivers:i386 tracker tracker-extract tracker-miner-fs
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

$ apt list ros-foxy-ros-ign
Listing... Done
ros-foxy-ros-ign/focal,now 0.221.1-1focal.20200911.235346 amd64 [installed]

$ source /opt/ros/foxy/setup.bash 

$ ros2 launch dolly_ignition dolly.launch.py
Package 'dolly_ignition' not found: "package 'dolly_ignition' not found, searching: ['/opt/ros/foxy']"

$ ls /opt/ros/foxy/share/ | grep dolly
dolly
dolly_follow

I'm guessing from how the cmake is written, if the build farm was missing the necessary build dependency from ignition, then no build artifacts would have been generated/packaged, given such build dependencies are not explicitly declared in a package manifest. See #22 (comment) and bellow:

if(NOT ignition-gazebo3_FOUND)
message(WARNING "Ignition Gazebo 3 not found, proceeding without that simulator.")
return()
endif()

i can't run

 ~/Documents/WorkSpaces/ros2_ws [04:21:57]
hokori$ ros2 launch my_package dolly.launch.py
[INFO] [launch]: All log files can be found below /home/hokori/.ros/log/2021-04-30-16-22-04-397624-hokori-63618
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [gzserver-1]: process started with pid [63620]
[INFO] [gzclient   -2]: process started with pid [63623]
[gzserver-1] [INFO] [1619770925.761932613] [dolly.diff_drive]: Wheel pair 1 separation set to [1.250000m]
[gzserver-1] [INFO] [1619770925.762220654] [dolly.diff_drive]: Wheel pair 1 diameter set to [0.300000m]
[gzserver-1] [INFO] [1619770925.762819895] [dolly.diff_drive]: Subscribed to [/dolly/cmd_vel]
[gzserver-1] [INFO] [1619770925.763415232] [dolly.diff_drive]: Advertise odometry on [/dolly/odom]
[gzserver-1] [INFO] [1619770925.764193075] [dolly.diff_drive]: Publishing odom transforms between [odom_demo] and [chassis]
[gzclient   -2] gzclient: /usr/include/boost/smart_ptr/shared_ptr.hpp:734:typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = gazebo::rendering::Camera; typename boost::detail::sp_member_access<T>::type = gazebo::rendering::Camera*]: 假设 ‘px != 0’ 失败。
[gzclient   -2] Aborted (core dumped)
[ERROR] [gzclient   -2]: process has died [pid 63623, exit code 134, cmd 'gzclient   '].
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[ERROR] [gzserver-1]: process has died [pid 63620, exit code -2, cmd 'gzserver /home/hokori/Documents/WorkSpaces/ros2_ws/install/dolly_gazebo/share/dolly_gazebo/worlds/dolly_empty.world        

Example package for ignition systems plugin

It would be nice to have an example of how to package a custom systems plugin for ignition. For example, the classic gazebo version of dolly uses the libgazebo_ros_diff_drive plugin for mapping command velocities to the joint control for a respective wheelbase of the robot:

<plugin name='diff_drive' filename='libgazebo_ros_diff_drive.so'>

The ignition gazebo version of dolly uses the libignition-gazebo-diff-drive-system instead:

<plugin
filename="libignition-gazebo-diff-drive-system.so"
name="ignition::gazebo::systems::DiffDrive">

For instances where an existing plugin bundled in ignition may not suffice or not exist, it would be helpful to have a packaged example of something like the diff_drive plugin as a local package here.

https://github.com/ignitionrobotics/ign-gazebo/tree/5b21ec87306c35b3494adc25694fac8b8d1bb7de/src/systems/diff_drive

Perhaps a simple ignition plugin to control the tail_joint of dolly, that could be controlled via topic to active waggle, passively dampen, or hold still/break. It would also provide as a reference template for the cmake and ament exports necessary for ignition to find and load the externally compiled plugin.

<joint name='tail_joint' type='revolute'>

Personally, I'd like to prototype an ackermann steering model, but want to avoid having to rebuild the entire ign-gazebo code base until the plugin is working and ready to upstream, keeping my development confined to a minimal dolly like colcon workspace/repo. As of yet, the current Ignition Robotics plugin and systems docs do not specify how to write your own, external from the upstream binaries.

Github Actions Ogre2 error accessing DISPLAY

While working on check the headless mode inside GitHub Actions and reading #41 I just found that there is a problem reported in the log:

1: [follow_ignition_TEST-1] [Dbg] [SimulationRunner.cc:527] Creating postupdate worker thread (1)
1: [follow_ignition_TEST-1] [Msg] DiffDrive subscribing to twist messages on [/dolly/cmd_vel]
1: [follow_ignition_TEST-1] [Err] [Ogre2RenderEngine.cc:376] Unable to open display: :1.0
1: [parameter_bridge-3] [INFO] [1635442786.958195465] [ros_ign_bridge]: Passing message from ROS geometry_msgs/msg/Twist to Ignition ignition.msgs.Twist (showing msg only once per type)
1: [follow_ignition_TEST-1] [Wrn] [follow_ignition_TEST.cpp:193] Recorded [5000] poses

The test ended with a success, not sure if it is affecting anything seriously.

Failed to find parent entity when launching dolly_ignition demo

Looks like the gzclient immediately crashes upon launching the dolly_gazebo demo.
To reproduce: see the rocker command below using the Docker image from #22 .

dolly_ignition

$ rocker --nvidia --x11 --net=host --pulse chapulina/dolly:foxy
# ros2 launch dolly_ignition dolly.launch.py
[INFO] [launch]: All log files can be found below /root/.ros/log/2020-09-18-19-21-35-443059-cog-rw07-48
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [ign gazebo-1]: process started with pid [50]
[INFO] [create-2]: process started with pid [52]
[INFO] [dolly_follow-3]: process started with pid [54]
[INFO] [parameter_bridge-4]: process started with pid [57]
[INFO] [rviz2-5]: process started with pid [59]
[create-2] [INFO] [1600482095.605943749] [ros_ign_gazebo]: Requesting list of world names.
[rviz2-5] QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
[ign gazebo-1] [Wrn] [URI.cc:580] Unable to parse URI [/opt/overlay_ws/install/dolly_ignition/share/dolly_ignition/worlds/station.sdf]. Ignoring.
[ign gazebo-1] QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
[ign gazebo-1] [Wrn] [LocalCache.cc:102] Server directory does not exist [/root/.ignition/fuel/fuel.ignitionrobotics.org]
[rviz2-5] [INFO] [1600482096.575192993] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-5] [INFO] [1600482096.575321441] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: Failed to initialize QSettings instance. Status code is: 1
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: The following application identifiers have not been set: QVector("organizationName", "organizationDomain")
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: Failed to initialize QSettings instance. Status code is: 1
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: The following application identifiers have not been set: QVector("organizationName", "organizationDomain")
[rviz2-5] [INFO] [1600482096.708767961] [rviz2]: Stereo is NOT SUPPORTED
[create-2] [INFO] [1600482098.507048591] [ros_ign_gazebo]: Requested creation of entity.
[create-2] [INFO] [1600482098.507129514] [ros_ign_gazebo]: OK creation of entity.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: Failed to initialize QSettings instance. Status code is: 1
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: The following application identifiers have not been set: QVector("organizationName", "organizationDomain")
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: Failed to initialize QSettings instance. Status code is: 1
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: The following application identifiers have not been set: QVector("organizationName", "organizationDomain")
[INFO] [create-2]: process has finished cleanly [pid 52]
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/WorldControl/WorldControl.qml:88:3: QML RoundButton: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/WorldControl/WorldControl.qml:88:3: QML RoundButton: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [Wrn] [Component.hh:144] Trying to serialize component with data type [N3sdf2v95WorldE], which doesn't have `operator<<`. Component will not be serialized.
[ign gazebo-1] [Wrn] [Component.hh:144] Trying to serialize component with data type [N3sdf2v95ModelE], which doesn't have `operator<<`. Component will not be serialized.
[ign gazebo-1] Warning [parser.cc:866] XML Attribute[frame] in element[pose] not defined in SDF, ignoring.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[parameter_bridge-4] [INFO] [1600482102.909747661] [ros_ign_bridge]: Passing message from ROS sensor_msgs/msg/LaserScan to Ignition ignition.msgs.LaserScan (showing msg only once per type
[parameter_bridge-4] [INFO] [1600482102.910267952] [ros_ign_bridge]: Passing message from ROS geometry_msgs/msg/Twist to Ignition ignition.msgs.Twist (showing msg only once per type
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [12]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [13]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [13]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [13]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [17]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [17]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [20]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [20]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [23]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [23]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [26]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [12]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [12]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [12]
[ign gazebo-1] [GUI] [Err] [EntityTree.cc:128] Failed to find parent entity [12]
[parameter_bridge-4] [INFO] [1600482109.454707833] [ros_ign_bridge]: Passing message from ROS nav_msgs/msg/Odometry to Ignition ignition.msgs.Odometry (showing msg only once per type
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[rviz2-5] [INFO] [1600482118.464797090] [rclcpp]: signal_handler(signal_value=2)
[parameter_bridge-4] [INFO] [1600482118.464812578] [rclcpp]: signal_handler(signal_value=2)
[dolly_follow-3] [INFO] [1600482118.464821221] [rclcpp]: signal_handler(signal_value=2)
[INFO] [dolly_follow-3]: process has finished cleanly [pid 54]
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[ign gazebo-1] [GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[INFO] [rviz2-5]: process has finished cleanly [pid 59]
[ERROR] [ign gazebo-1]: process has died [pid 50, exit code -2, cmd 'ign gazebo /opt/overlay_ws/install/dolly_ignition/share/dolly_ignition/worlds/station.sdf -v 2 --gui-config /opt/overlay_ws/install/dolly_ignition/share/dolly_ignition/ign/gui.config'].
[ERROR] [parameter_bridge-4]: process[parameter_bridge-4] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[INFO] [parameter_bridge-4]: sending signal 'SIGTERM' to process[parameter_bridge-4]
[INFO] [parameter_bridge-4]: process has finished cleanly [pid 57]

ROS Humble branch request

Could you please create a humble branch and build it so we can test and update documentation prior to the official humble release later this month?

Demo simulation with web visualization ?

Hello, I'm trying to run this demo simulation using ignition and web simulation (following the announcement for fortress release, https://community.gazebosim.org/t/ignition-fortress-release/1127).

I'm using a headless server and everything is installed inside a docker container. I run the following:

export IGNITION_VERSION=fortress && colcon build
. install/setup.bash

export DISPLAY=:1.0
export MESA_GL_VERSION_OVERRIDE=3.3
Xvfb :1 -ac -noreset -core -screen 0 1280x1024x24 &

ros2 launch dolly_ignition dolly.launch.py &
ign launch -v 4 websocket.ign

where the content of websocket.ign is almost the same as here.

I can visualize the scene and the robot:
image

But there is no way to start the simulation or move the person to make the robot to follow her.

By the way, seems like I have some texture loading issues:

[ign gazebo-1] [GUI] [Err] [SystemPaths.cc:467] Could not resolve file [young_lightskinned_female_diffuse.png]
[ign gazebo-1] [Err] [SystemPaths.cc:467] Could not resolve file [young_lightskinned_female_diffuse.png]
[ign gazebo-1] [GUI] [Err] [SystemPaths.cc:467] Could not resolve file [ponytail01_diffuse.png]
[ign gazebo-1] [GUI] [Err] [SystemPaths.cc:467] Could not resolve file [brown_eye.png]
[ign gazebo-1] [GUI] [Err] [SystemPaths.cc:467] Could not resolve file [eyebrow002.png]
[ign gazebo-1] [GUI] [Err] [SystemPaths.cc:467] Could not resolve file [eyelashes01.png]     
[ign gazebo-1] [GUI] [Err] [SystemPaths.cc:467] Could not resolve file [tongue01_diffuse.png]
[ign gazebo-1] [GUI] [Err] [SystemPaths.cc:467] Could not resolve file [female_casualsuit02_diffuse.png]
[ign gazebo-1] [GUI] [Err] [SystemPaths.cc:467] Could not resolve file [female_casualsuit01_diffuse.png]
[ign gazebo-1] [GUI] [Err] [SystemPaths.cc:467] Could not resolve file [shoes05_diffuse.png]
[ign gazebo-1] [Err] [SystemPaths.cc:467] Could not resolve file [ponytail01_diffuse.png]    
[ign gazebo-1] [Err] [SystemPaths.cc:467] Could not resolve file [brown_eye.png]             
[ign gazebo-1] [Err] [SystemPaths.cc:467] Could not resolve file [eyebrow002.png]            
[ign gazebo-1] [Err] [SystemPaths.cc:467] Could not resolve file [eyelashes01.png]
[ign gazebo-1] [Err] [SystemPaths.cc:467] Could not resolve file [tongue01_diffuse.png]
[ign gazebo-1] [Err] [SystemPaths.cc:467] Could not resolve file [female_casualsuit02_diffuse.png]
[ign gazebo-1] [Err] [SystemPaths.cc:467] Could not resolve file [female_casualsuit01_diffuse.png]
[ign gazebo-1] [Err] [SystemPaths.cc:467] Could not resolve file [shoes05_diffuse.png]

Any hints on how to make everything work or am I missing something ? Thanks a lot!

Software deps:

  • ros2 galactic
  • ignition fortress

ros2:eloquent problems

I've noticed that there are problems with ros2 eloquent at ubuntu 18.04 (bionic).

colcon build
Starting >>> dolly_follow
Finished <<< dolly_follow [0.38s]
Starting >>> dolly_gazebo
Finished <<< dolly_gazebo [0.31s]
Starting >>> dolly
Finished <<< dolly [0.25s]

Summary: 3 packages finished [1.17s]

I try this:
#!/bin/bash
#export DISTRO=dashing
export DISTRO=eloquent
source /opt/ros/$DISTRO/setup.bash
source /usr/share/gazebo/setup.sh
source $HOME/ros2ws/install/setup.bash

ros2 launch dolly_gazebo dolly.launch.py

I get the following results:
[INFO] [launch]: All log files can be found below /home/ros/.ros/log/2020-01-06-20-17-11-463868-rosdev-24509
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [gzserver-1]: process started with pid [24520]
[INFO] [gzclient -2]: process started with pid [24522]
[INFO] [dolly_follow-3]: process started with pid [24524]
[ERROR] [dolly_follow-3]: process has died [pid 24524, exit code 127, cmd '/home/ros/ros2ws/install/dolly_follow/lib/dolly_follow/dolly_follow --ros-args -r cmd_vel:=/dolly/cmd_vel -r laser_scan:=/dolly/laser_scan'].
[INFO] [rviz2-4]: process started with pid [24525]
[ERROR] [launch]: Caught exception in launch (see debug for traceback): I/O operation on closed file
[INFO] [rviz2-4]: sending signal 'SIGINT' to process[rviz2-4]
[ERROR] [gzserver-1]: process has died [pid 24520, exit code 255, cmd 'gzserver /home/ros/ros2ws/install/dolly_gazebo/share/dolly_gazebo/worlds/dolly_empty.world -s libgazebo_ros_init.so -s libgazebo_ros_factory.so '].
[INFO] [gzclient -2]: sending signal 'SIGINT' to process[gzclient -2]
[rviz2-4] terminate called after throwing an instance of 'rclcpp::exceptions::RCLError'
[rviz2-4] what(): Failed to create interrupt guard condition in Executor constructor: the given context is not valid, either rcl_init() was not called or rcl_shutdown() was called., at /tmp/binarydeb/ros-eloquent-rcl-0.8.3/src/rcl/guard_condition.c:69
[ERROR] [rviz2-4]: process has died [pid 24525, exit code -6, cmd '/opt/ros/eloquent/lib/rviz2/rviz2 -d /home/ros/ros2ws/install/dolly_gazebo/share/dolly_gazebo/rviz/dolly_gazebo.rviz --ros-args'].
[gzclient -2] [Err] [REST.cc:205] Error in REST request
[gzclient -2]
[gzclient -2] libcurl: (51) SSL: no alternative certificate subject name matches target host name 'api.ignitionfuel.org'
[ERROR] [gzclient -2]: process[gzclient -2] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[INFO] [gzclient -2]: sending signal 'SIGTERM' to process[gzclient -2]
[ERROR] [gzclient -2]: process has died [pid 24522, exit code -15, cmd 'gzclient '].

Ignition demo - foxy + citadel

Hi,

The gazebo version ran effortlessly but I am struggling to get the ignition example running.
So ros2 pkg list | grep dolly_ignition returns nothing and I think the issue my have come from initially trying dome and then moving onto citadel (both give the same error now).

ros2 launch dolly_ignition dolly.launch.py returns
Package 'dolly_ignition' not found: "package 'dolly_ignition' not found, searching:

Although I uninstalled ignition dome there are still two ign-gazebo versions: 4.2 and 3.7.

Building the workspace gives the following warning: Starting >>> dolly_ignition [0.324s] WARNING:colcon.colcon_cmake.task.cmake.build:Could not run installation step for package 'dolly_ignition' because it has no 'install' target
Do you have an idea of what the issue is?
Regards,
Simon

Is it being installed correctly via apt?

Platform

OS: Ubuntu focal
ROS version: foxy

Summary

I wanted to run gazebo simulator on foxy, so I tried doing apt install ros-foxy-dolly-gazebo however the only package that I am seeing it is being installed is dolly_follow.
I also tried installing "all the packages" with apt install ros-foxy-dolly but same thing happened, only found dolly_follow in /opt/ros/foxy/share and therefore ros2 launch dolly_gazebo dolly.launch fails.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.