Skip to content

Add files via upload#3

Open
kaschefi wants to merge 19 commits into
mainfrom
lotti3
Open

Add files via upload#3
kaschefi wants to merge 19 commits into
mainfrom
lotti3

Conversation

@kaschefi
Copy link
Copy Markdown
Collaborator

german open 2026

kaschefi and others added 10 commits March 18, 2026 19:06
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]>
kaschefi and others added 9 commits April 7, 2026 20:30
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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants