Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 120 additions & 0 deletions src/description/models/terrain_world/meshes/terrain.dae

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions src/description/models/terrain_world/model.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<model>
<name>terrain_world</name>
<version>1.0</version>
<sdf version="1.7">model.sdf</sdf>
<author>
<name>Rishav Nair</name>
</author>
<description>Terrain imported from Blender (.glb)</description>
</model>
34 changes: 34 additions & 0 deletions src/description/models/terrain_world/model.sdf
Comment thread
Rishav-N marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?xml version="1.0"?>
<sdf version="1.7">
<model name="terrain_world">
<static>true</static>
<link name="terrain_world_link">
<visual name="terrain_world_visual">
<geometry>
<mesh>
<uri>model://terrain_world/meshes/terrain.dae</uri>
</mesh>
</geometry>
<!-- <material>
<script>
<uri>model://terrain/meshes/scripts</uri>
<name>RepeatedSand/Diffuse</name>
</script>
</material> -->
<material>
<ambient>0.85 0.76 0.52 1</ambient>
<diffuse>0.85 0.76 0.52 1</diffuse>
<specular>0.0 0.0 0.0 1</specular>
</material>

</visual>
<collision name="terrain_world_collision">
<geometry>
<mesh>
<uri>model://terrain_world/meshes/terrain.dae</uri>
</mesh>
</geometry>
</collision>
</link>
</model>
</sdf>
4 changes: 4 additions & 0 deletions src/description/urdf/athena_drive.urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,11 @@
<!-- Import odrive ros2_control description -->
<xacro:include filename="$(find description)/ros2_control/drive/drive.odrive.ros2_control.xacro" />

<<<<<<< HEAD
<!-- Contains description of drive -->
=======

>>>>>>> a44562b (Fixed simulation bugs to enable rover control in gazebo)
Comment thread
Rishav-N marked this conversation as resolved.
Outdated
<xacro:description/>

<xacro:if value="$(arg use_mock_hardware)">
Expand Down
8 changes: 4 additions & 4 deletions src/description/urdf/athena_drive_description.urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@
<parent link="swerve_mount_1_link" />
<child link="steer_1_link" />
<axis xyz="0 1 0" />
<limit lower="0" upper="6.2832" effort="200" velocity="3" />
<limit lower="-3.1416" upper="3.1416" effort="200" velocity="3" />
</joint>

<link name="wheel_bracket_1_link">
Expand Down Expand Up @@ -237,7 +237,7 @@
<parent link="swerve_mount_4_link" />
<child link="steer_4_link" />
<axis xyz="0 1 0" />
<limit lower="0" upper="6.2832" effort="200" velocity="3" />
<limit lower="-3.1416" upper="3.1416" effort="200" velocity="3" />
</joint>

<link name="wheel_bracket_4_link">
Expand Down Expand Up @@ -389,7 +389,7 @@
<parent link="swerve_mount_2_link" />
<child link="steer_2_link" />
<axis xyz="0 1 0" />
<limit lower="0" upper="6.2832" effort="200" velocity="3" />
<limit lower="-3.1416" upper="3.1416" effort="200" velocity="3" />
</joint>

<link name="wheel_bracket_2_link">
Expand Down Expand Up @@ -510,7 +510,7 @@
<parent link="swerve_mount_3_link" />
<child link="steer_3_link" />
<axis xyz="0 1 0" />
<limit lower="0" upper="6.28318530718" effort="200" velocity="3" />
<limit lower="-3.1416" upper="3.1416" effort="200" velocity="3" />
</joint>

<link name="wheel_bracket_3_link">
Expand Down
21 changes: 21 additions & 0 deletions src/description/worlds/terrain_world.sdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" ?>
<sdf version="1.7">
<world name="default">
<light type="directional" name="sun">
<cast_shadows>true</cast_shadows>
<pose>0 0 10 0 0 0</pose>
<diffuse>0.8 0.8 0.8 1</diffuse>
<specular>0.2 0.2 0.2 1</specular>
<attenuation>
<range>1000</range>
<constant>0.9</constant>
<linear>0.01</linear>
<quadratic>0.001</quadratic>
</attenuation>
<direction>-0.5 0.1 -0.9</direction>
</light>
<include>
<uri>model://terrain_world</uri>
</include>
</world>
</sdf>
8 changes: 7 additions & 1 deletion src/simulation/launch/bringup.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@
default_value='empty.sdf',
description='Gazebo world file to load'
),
DeclareLaunchArgument(
'world_name',
default_value='default',
description='Name of the world inside Gazebo'
),
]

def generate_launch_description():
Expand Down Expand Up @@ -54,7 +59,8 @@ def generate_launch_description():
launch_arguments=[
('namespace', LaunchConfiguration('namespace')),
('rviz', LaunchConfiguration('rviz')),
('use_sim_time', LaunchConfiguration('use_sim_time'))
('use_sim_time', LaunchConfiguration('use_sim_time')),
('world_name', LaunchConfiguration('world_name'))
]
)

Expand Down
1 change: 1 addition & 0 deletions src/subsystems/drive/drive_bringup/CMakeLists.txt
Comment thread
Rishav-N marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ install(

install(PROGRAMS
scripts/controller_switcher.py
scripts/twist_stamper.py
DESTINATION lib/${PROJECT_NAME}
)

Expand Down
12 changes: 12 additions & 0 deletions src/subsystems/drive/drive_bringup/launch/athena_drive.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,17 @@ def generate_launch_description():
parameters = [teleop_twist_config],
)

twist_stamper_node = Node(
Comment thread
Rishav-N marked this conversation as resolved.
Outdated
package="drive_bringup",
executable="twist_stamper.py",
name="twist_stamper",
output="screen",
parameters=[{
"in_topic": "/cmd_vel",
"out_topic": "/ackermann_steering_controller/reference",
}]
)


return LaunchDescription(
declared_arguments +
Expand All @@ -356,6 +367,7 @@ def generate_launch_description():
robot_state_pub_node,
joystick_publisher,
teleop_twist_joy,
twist_stamper_node,
Comment thread
Rishav-N marked this conversation as resolved.
Outdated
joint_state_publisher,
# delay_can_node_after_control_node,
delay_joint_state_broadcaster_spawner_after_ros2_control_node,
Expand Down
34 changes: 34 additions & 0 deletions src/subsystems/drive/drive_bringup/scripts/twist_stamper.py
Comment thread
Rishav-N marked this conversation as resolved.
Outdated
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/usr/bin/env python3
import rclpy
from rclpy.node import Node
from geometry_msgs.msg import TwistStamped

class TwistRelay(Node):
def __init__(self):
super().__init__('twist_relay')
self.declare_parameter('in_topic', '/cmd_vel')
self.declare_parameter('out_topic', '/ackermann_steering_controller/reference')

in_topic = self.get_parameter('in_topic').value
out_topic = self.get_parameter('out_topic').value

self.pub = self.create_publisher(TwistStamped, out_topic, 10)
self.sub = self.create_subscription(TwistStamped, in_topic, self.cb, 10)

self.get_logger().info(
f"Relaying TwistStamped '{in_topic}' → '{out_topic}'"
)

def cb(self, msg: TwistStamped):
# Just forward the message as-is
self.pub.publish(msg)

def main():
rclpy.init()
node = TwistRelay()
rclpy.spin(node)
node.destroy_node()
rclpy.shutdown()

if __name__ == '__main__':
main()