Conversation
german open 2026
- Add Lotti_gazebo_control.xacro with friction properties and gazebo_ros2_control plugin - Add Lotti_sim.ros2_control.xacro using GazeboSystem instead of serial hardware plugins - Add lotti_world.world (flat ground + sun SDF world) - Add gazebo.launch.py: full sim stack (Gazebo → spawn → controllers → MoveIt/Servo → teleop → RViz) - Add use_sim xacro arg to Lotti.urdf.xacro with conditional hardware branching - Fix chain joints fixed→continuous in Lotti_body.xacro; fix empty body inertia - Add description/worlds to CMakeLists.txt install rule - Add package.xml for lotti_control3 (was missing); includes gazebo_ros2_control deps - Add CLAUDE.md with project context and simulation usage docs Real hardware launches (robot.launch.py, full.launch.py) are untouched. Launch sim: ros2 launch lotti_control3 gazebo.launch.py Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
CLAUDE.md is a local Claude Code context file and should not be version-controlled. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
## Why Moving the robot target platform from Ubuntu 22.04 (ROS2 Humble + Gazebo Classic 11) to Ubuntu 24.04 (ROS2 Jazzy + Gazebo Harmonic). Gazebo Classic is EOL. Only the 4 Gazebo-facing files needed changes — nothing else was touched. ## Files changed ### control_ws/src/lotti_control3/package.xml - REMOVED: gazebo_ros, gazebo_ros2_control - ADDED: ros_gz_sim, gz_ros2_control, ros_gz_bridge ### description/ros2_control/Lotti_sim.ros2_control.xacro - Plugin in all 3 hardware blocks: gazebo_ros2_control/GazeboSystem → gz_ros2_control/GazeboSimSystem ### description/urdf/Lotti_gazebo_control.xacro - Plugin tag: filename="libgazebo_ros2_control.so" name="gazebo_ros2_control" → filename="gz_ros2_control-system" name="gz_ros2_control::GazeboSimROS2ControlPlugin" ### bringup/launch/gazebo.launch.py - gzserver + gzclient (gazebo_ros) → ros_gz_sim gz_sim.launch.py (single node) - spawn_entity.py (gazebo_ros) → ros_gz_sim create - TimerAction(3s) delay → OnProcessStart event handler on robot_state_publisher - Added /clock bridge node (ros_gz_bridge) — required for use_sim_time to work ## What was NOT changed (zero regressions expected) - All C++ hardware interfaces (arm3, drive3, flipper3) — API stable across distros - Custom controllers (lotti_drive_controller, lotti_flipper3_controller) - Python nodes (lotti_teleop, lotti_lidar_tf) - MoveIt2 config (lotti3_moveit_config) — uses mock_components, no Gazebo dep - Real-hardware launch files (robot.launch.py, full.launch.py, operator.launch.py) - Controller YAML configs (lotti_controllers.yaml, lotti_servo_config.yaml) - URDF model files (Lotti.urdf.xacro, Lotti_body.xacro, Lotti_arm3.xacro) - World file (lotti_world.world) — SDF 1.6 is backwards-compatible with Harmonic ## To run on a fresh Jazzy machine sudo apt install ros-jazzy-ros-gz-sim ros-jazzy-gz-ros2-control ros-jazzy-ros-gz-bridge cd control_ws && colcon build --symlink-install source install/setup.bash ros2 launch lotti_control3 gazebo.launch.py ## Note for devs pulling this git pull --rebase (commit was amended after initial push) Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
setup_jazzy.sh is a fully automated single-script setup for a fresh Ubuntu 24.04
machine. Run with: chmod +x setup_jazzy.sh && ./setup_jazzy.sh
Steps performed automatically:
1. Locale configuration
2. ROS 2 Jazzy desktop install (idempotent — skips if already installed)
3. Gazebo Harmonic + ros_gz_sim + ros_gz_bridge + gz_ros2_control
4. MoveIt2 (apt in Jazzy, no compile needed), moveit_servo, ros2_control,
ros2_controllers, joy, xacro, cv_bridge, libserial-dev, OpenCV, NumPy
5. Clone resqbot_dev (branch: lotti3), rosdep install, colcon build
6. .bashrc: source ROS Jazzy, source workspace, ROS_DOMAIN_ID=17
Optional (prompted):
- Livox LiDAR stack: SDK2 + livox_ros_driver2 (jazzy) + Fast_LIO_ROS2
- audio_common for robot mic/speaker
Prints a summary with next steps and hardware notes (Unitree SDK gate,
flipper write_only mode, enable_drive/flipper_controller launch args).
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
german open 2026