Proprioceptive Navigation Through Vegetation
- ROS 2 Humble
- Gazebo Fortress
- Install on mac:
brew install ignition-fortress - On mac, gazebo installed via homebrew, may need to
conda remove --force libignition-gazebo6to force use of homebrew gazebo.
- Install on mac:
- Python 3.10
- setuptools==77.0.1
# Install dependencies
rosdep install -r --from-paths src -i -y
# Initial Build
make build
# colcon build --symlink-install
# Source the workspace
source install/setup.bash # For bash
source install/setup.zsh # For zshgit submodule add -b humble https://github.com/clearpathrobotics/clearpath_common.git
git submodule update --init --recursive- Launch the
clearpath_gzsimulation:
ros2 launch clearpath_gz simulation.launch.py setup_path:=src/setup_path world:=outdoors-
Robostack (Mac) packages for Humble: https://robostack.github.io/humble.html
-
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
python -m ensurepip --upgrade
python -m pip install --upgrade setuptools
pip install --upgrade setuptools
python -m ensurepip --upgrade- "package 'controller_manager' not found
conda install -c robostack-staging -c conda-forge ros-humble-controller-manager ros-humble-controller-interface ros-humble-controller-manager-msgs- Failed to load entry point 'echo': Error importing numpy: you should not try to import numpy from
conda remove --force numpy
conda install -c conda-forge numpy- If built bridge from source, need to uninstall conda's bridge
conda remove --force ros-humble-ros-gz-bridge ros-humble-ros-ign-bridge ros-humble-cv-bridge- [Wrn] [gz.cc:102] Fuel world download failed because Fetch failed. Other errors Need to set env paths:
export GZ_SIM_RESOURCE_PATH=/path/to/vegmap/install/clearpath_gz/share/clearpath_gz/worlds:$GZ_SIM_RESOURCE_PATH
export IGN_GAZEBO_RESOURCE_PATH=/path/to/vegmap/install/clearpath_gz/share/clearpath_gz/worlds:$IGN_GAZEBO_RESOURCE_PATH
export GZ_SIM_RESOURCE_PATH=/path/to/vegmap/src/gazebo/gazebo-vegetation:$GZ_SIM_RESOURCE_PATH
export IGN_GAZEBO_RESOURCE_PATH=/path/to/vegmap/src/gazebo/gazebo-vegetation:$IGN_GAZEBO_RESOURCE_PATH
export GAZEBO_MODEL_PATH=/path/to/vegmap/src/gazebo/gazebo-vegetation/gazebo_vegetation/models:$GAZEBO_MODEL_PATH- libc++abi: terminating due to uncaught exception of type pluginlib::LibraryLoadException: Could not find library corresponding to plugin sdformat_urdf_plugin/SDFormatURDFParser. Make sure that the library 'sdformat_urdf_plugin' actually exists.
In ${CONDA_PREFIX}/lib, run ln -s libsdformat_urdf_plugin.so libsdformat_urdf_plugin.dylib
Source: RoboStack/ros-humble#104 (comment)
- Starting gazebo on mac
In add
-stogz_sim = IncludeLaunchDescription(ingz_sim.launch.pyto run server only.
# Set paths to meshes
export GZ_SIM_RESOURCE_PATH=/path/to/vegmap/src/clearpath_common:$GZ_SIM_RESOURCE_PATH
export IGN_GAZEBO_RESOURCE_PATH=/path/to/vegmap/src/clearpath_common:$IGN_GAZEBO_RESOURCE_PATH
# Terminal 1: start gz server
(base) gz sim -v 4 -s src/planner/worlds/outdoors.sdf
# Terminal 2: start gz gui
(base) gz sim -g -v 4 --gui-config src/clearpath_simulator/clearpath_gz/config/gui.config
# Terminal 3: spawn the robot
(ros2) ros2 launch clearpath_gz robot_spawn.launch.py setup_path:=src/setup_path- To purge a file from git cache, such as
.pycfiles, run:
git rm --cached "**/*.pyc"-
ImportError: The 'nspektr' package is required; normally this is bundled with this package so if you get this warning, consult the packager of your distribution.Runpip install --upgrade setuptools -
Waiting for '/a200_0000/controller_manager' node to existRunconda install -c robostack-staging -c conda-forge --no-deps ros-humble-controller-manager ros-humble-ros2-controlRemove the conda install:conda uninstall --force ros-humble-controller-manager ros-humble-controller-interface ros-humble-hardware-interface ros-humble-controller-manager-msgs ros-humble-ros2-controlBuild ros2_control from source:colcon build --cmake-args -DBUILD_TESTING=OFF -DPython3_FIND_VIRTUALENV=ONLY --packages-select controller_interface hardware_interface controller_manager_msgs controller_manager -
Original error: parameter 'yaml_filename' is not initializedKnown bug with map_server yaml_filename: ros-navigation/navigation2#3644 Patch is not in binaries, need to build from source (didn't work) or write your own bringup nodes