diff --git a/src/sherpa/config/gz_bridge.yaml b/src/sherpa/config/gz_bridge.yaml index 5a18576..86b4753 100644 --- a/src/sherpa/config/gz_bridge.yaml +++ b/src/sherpa/config/gz_bridge.yaml @@ -32,4 +32,10 @@ gz_topic_name: "imu" ros_type_name: "sensor_msgs/msg/Imu" gz_type_name: "gz.msgs.IMU" - direction: GZ_TO_ROS \ No newline at end of file + direction: GZ_TO_ROS + +- ros_topic_name: "/cmd_vel_in" + gz_topic_name: "cmd_vel" + ros_type_name: "geometry_msgs/msg/Twist" + gz_type_name: "gz.msgs.Twist" + direction: GZ_TO_ROS diff --git a/src/sherpa/launch/simulator.launch.py b/src/sherpa/launch/simulator.launch.py index a8da1f7..d0f9168 100644 --- a/src/sherpa/launch/simulator.launch.py +++ b/src/sherpa/launch/simulator.launch.py @@ -18,7 +18,7 @@ def generate_launch_description(): pkg_share = get_package_share_directory(pkg_name) pkg_prefix = os.path.dirname(pkg_share) - world_path = os.path.join(pkg_share, 'worlds', 'empty.world') + world_path = os.path.join(pkg_share, 'worlds', 'raceway.world') xacro_file = os.path.join(pkg_share, 'urdf', 'sherpa.xacro') # create nodes @@ -33,7 +33,7 @@ def generate_launch_description(): 'ros2', 'launch', 'ros_gz_sim', 'gz_sim.launch.py', f'gz_args:=-r {world_path}' ], - output='screen' + #output='screen' ) state_publisher = Node( @@ -50,7 +50,7 @@ def generate_launch_description(): package='controller_manager', executable='spawner', arguments=['ackermann_controller'], - output='screen' + #output='screen' ) joint_state_broadcaster = Node( @@ -58,7 +58,7 @@ def generate_launch_description(): executable='spawner', arguments=['joint_state_broadcaster', '--controller-manager', '/controller_manager'], parameters=[{'use_sim_time': True}], - output='screen' + #output='screen' ) static_tf = Node( @@ -80,6 +80,15 @@ def generate_launch_description(): '-topic', 'robot_description', '-x', '0', '-y', '0', '-z', '0.5' ], + #output='screen' + ) + + twist_stamper = Node( + package="twist_stamper", + executable="twist_stamper", + remappings=[ + ('/cmd_vel_out', '/ackermann_controller/reference'), + ], output='screen' ) @@ -108,6 +117,7 @@ def generate_launch_description(): ld.add_action(gz_bridge) ld.add_action(joint_state_broadcaster) ld.add_action(controller) + ld.add_action(twist_stamper) ld.add_action(rviz2) return ld diff --git a/src/sherpa/urdf/components/ouster_lidar.xacro b/src/sherpa/urdf/components/ouster_lidar.xacro index 6061d23..ca9bcfe 100644 --- a/src/sherpa/urdf/components/ouster_lidar.xacro +++ b/src/sherpa/urdf/components/ouster_lidar.xacro @@ -167,4 +167,4 @@ - \ No newline at end of file + diff --git a/src/sherpa/urdf/components/wheel.xacro b/src/sherpa/urdf/components/wheel.xacro index 5f785a2..24599ca 100644 --- a/src/sherpa/urdf/components/wheel.xacro +++ b/src/sherpa/urdf/components/wheel.xacro @@ -66,7 +66,7 @@ 1.2 - 0.01 + 0.1 0.1 @@ -81,4 +81,4 @@ - \ No newline at end of file + diff --git a/src/sherpa/urdf/sherpa.xacro b/src/sherpa/urdf/sherpa.xacro index 3822985..3f43762 100644 --- a/src/sherpa/urdf/sherpa.xacro +++ b/src/sherpa/urdf/sherpa.xacro @@ -25,7 +25,7 @@ - + @@ -103,4 +103,4 @@ - \ No newline at end of file + diff --git a/src/sherpa/worlds/empty.world b/src/sherpa/worlds/empty.world index 56e0c7f..0bf1e53 100644 --- a/src/sherpa/worlds/empty.world +++ b/src/sherpa/worlds/empty.world @@ -20,7 +20,7 @@ - ogre2 + ogre @@ -92,4 +92,4 @@ false - \ No newline at end of file + diff --git a/src/sherpa/worlds/raceway.world b/src/sherpa/worlds/raceway.world new file mode 100644 index 0000000..35d4239 --- /dev/null +++ b/src/sherpa/worlds/raceway.world @@ -0,0 +1,112 @@ + + + + + false + + + + + ogre2 + + + + + + + + + + + + 3D View + false + docked + + + ogre2 + scene + 0.4 0.4 0.4 + 0.5 0.8 0.95 + + + prius_hybrid + 0.5 + 0.5 5 2 + + + + + + + World control + false + false + 72 + 121 + 1 + + floating + + + + + + + true + true + true + + + + + + + World stats + false + false + 110 + 290 + 1 + + floating + + + + + + + true + true + true + true + + + + + docked + + front_camera + + + + + docked + + /cmd_vel + + + + https://fuel.ignitionrobotics.org/1.0/openrobotics/models/Sonoma Raceway + + + +