Skip to content

Commit

Permalink
Merge pull request #1 from ErikParkerrr/pr-28
Browse files Browse the repository at this point in the history
Pr 28
  • Loading branch information
ErikParkerrr authored Oct 13, 2024
2 parents f4c7057 + 2c3dde7 commit 7039070
Show file tree
Hide file tree
Showing 10 changed files with 297 additions and 42 deletions.
172 changes: 172 additions & 0 deletions odrive_botwheel_explorer/config/odrive_botwheel_explorer.rviz
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
Panels:
- Class: rviz_common/Displays
Help Height: 87
Name: Displays
Property Tree Widget:
Expanded:
- /Global Options1
- /Status1
- /RobotModel1
Splitter Ratio: 0.5
Tree Height: 1112
- Class: rviz_common/Selection
Name: Selection
- Class: rviz_common/Tool Properties
Expanded:
- /2D Goal Pose1
- /Publish Point1
Name: Tool Properties
Splitter Ratio: 0.5886790156364441
- Class: rviz_common/Views
Expanded:
- /Current View1
Name: Views
Splitter Ratio: 0.5
Visualization Manager:
Class: ""
Displays:
- Alpha: 0.5
Cell Size: 1
Class: rviz_default_plugins/Grid
Color: 160; 160; 164
Enabled: true
Line Style:
Line Width: 0.029999999329447746
Value: Lines
Name: Grid
Normal Cell Count: 0
Offset:
X: 0
Y: 0
Z: 0
Plane: XY
Plane Cell Count: 10
Reference Frame: <Fixed Frame>
Value: true
- Alpha: 1
Class: rviz_default_plugins/RobotModel
Collision Enabled: false
Description File: ""
Description Source: Topic
Description Topic:
Depth: 5
Durability Policy: Volatile
History Policy: Keep Last
Reliability Policy: Reliable
Value: /robot_description
Enabled: true
Links:
All Links Enabled: true
Expand Joint Details: false
Expand Link Details: false
Expand Tree: false
Link Tree Style: Links in Alphabetic Order
base_link:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
caster_frontal_wheel:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
caster_rear_wheel:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
left_wheel:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
right_wheel:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
Name: RobotModel
TF Prefix: ""
Update Interval: 0
Value: true
Visual Enabled: true
Enabled: true
Global Options:
Background Color: 48; 48; 48
Fixed Frame: odom
Frame Rate: 30
Name: root
Tools:
- Class: rviz_default_plugins/Interact
Hide Inactive Objects: true
- Class: rviz_default_plugins/MoveCamera
- Class: rviz_default_plugins/Select
- Class: rviz_default_plugins/FocusCamera
- Class: rviz_default_plugins/Measure
Line color: 128; 128; 0
- Class: rviz_default_plugins/SetInitialPose
Topic:
Depth: 5
Durability Policy: Volatile
History Policy: Keep Last
Reliability Policy: Reliable
Value: /initialpose
- Class: rviz_default_plugins/SetGoal
Topic:
Depth: 5
Durability Policy: Volatile
History Policy: Keep Last
Reliability Policy: Reliable
Value: /goal_pose
- Class: rviz_default_plugins/PublishPoint
Single click: true
Topic:
Depth: 5
Durability Policy: Volatile
History Policy: Keep Last
Reliability Policy: Reliable
Value: /clicked_point
Transformation:
Current:
Class: rviz_default_plugins/TF
Value: true
Views:
Current:
Class: rviz_default_plugins/Orbit
Distance: 3.359799385070801
Enable Stereo Rendering:
Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1
Swap Stereo Eyes: false
Value: false
Focal Point:
X: -0.05434183403849602
Y: 0.6973574757575989
Z: -0.00023954140488058329
Focal Shape Fixed Size: true
Focal Shape Size: 0.05000000074505806
Invert Z Axis: false
Name: Current View
Near Clip Distance: 0.009999999776482582
Pitch: 0.48539823293685913
Target Frame: <Fixed Frame>
Value: Orbit (rviz)
Yaw: 0.0053997039794921875
Saved: ~
Window Geometry:
Displays:
collapsed: false
Height: 1383
Hide Left Dock: false
Hide Right Dock: false
QMainWindow State: 000000ff00000000fd00000004000000000000016a000004fcfc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000007901000003fb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000044000004fc000000fd01000003fb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c000002610000000100000110000004fcfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000044000004fc000000d301000003fb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004420000003efc0100000002fb0000000800540069006d00650100000000000004420000000000000000fb0000000800540069006d0065010000000000000450000000000000000000000784000004fc00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection:
collapsed: false
Tool Properties:
collapsed: false
Views:
collapsed: false
Width: 2560
X: 0
Y: 28
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,19 @@
<param name="node_id">0</param>
<command_interface name="velocity"/>
<command_interface name="position"/>
<command_interface name="torque"/>
<command_interface name="effort"/>
<state_interface name="position"/>
<state_interface name="velocity"/>
<state_interface name="torque"/>
<state_interface name="effor"/>
</joint>
<joint name="${prefix}right_wheel_joint">
<param name="node_id">1</param>
<command_interface name="velocity"/>
<command_interface name="position"/>
<command_interface name="torque"/>
<command_interface name="effort"/>
<state_interface name="position"/>
<state_interface name="velocity"/>
<state_interface name="torque"/>
<state_interface name="effort"/>
</joint>

</ros2_control>
Expand Down
2 changes: 2 additions & 0 deletions odrive_botwheel_explorer/description/urdf/diffbot.urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
<xacro:arg name="prefix" default="" />
<xacro:arg name="use_mock_hardware" default="false" />

<xacro:include filename="$(find odrive_botwheel_explorer)/urdf/diffbot_materials.urdf.xacro" />

<xacro:include filename="$(find odrive_botwheel_explorer)/urdf/diffbot_description.urdf.xacro" />

<!-- Import Rviz colors -->
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?xml version="1.0"?>

<!-- Copied from ros2_control_demos https://github.com/ros-controls/ros2_control_demos.git -->

<!--
Copied from ROS1 example -
https://github.com/ros-simulation/gazebo_ros_demos/blob/kinetic-devel/rrbot_description/urdf/materials.xacro
-->
<robot>

<material name="black">
<color rgba="0.0 0.0 0.0 1.0"/>
</material>

<material name="blue">
<color rgba="0.0 0.0 0.8 1.0"/>
</material>

<material name="green">
<color rgba="0.0 0.8 0.0 1.0"/>
</material>

<material name="grey">
<color rgba="0.2 0.2 0.2 1.0"/>
</material>

<material name="orange">
<color rgba="${255/255} ${108/255} ${10/255} 1.0"/>
</material>

<material name="brown">
<color rgba="${222/255} ${207/255} ${195/255} 1.0"/>
</material>

<material name="red">
<color rgba="0.8 0.0 0.0 1.0"/>
</material>

<material name="yellow">
<color rgba="1.0 1.0 0.0 1.0"/>
</material>

<material name="white">
<color rgba="1.0 1.0 1.0 1.0"/>
</material>

</robot>
75 changes: 37 additions & 38 deletions odrive_botwheel_explorer/launch/botwheel_explorer.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,24 @@
def generate_launch_description():
# Declare arguments
declared_arguments = []
# declared_arguments.append(
# DeclareLaunchArgument(
# "gui",
# default_value="true",
# description="Start RViz2 automatically with this launch file.",
# )
# )
# declared_arguments.append(
# DeclareLaunchArgument(
# "use_mock_hardware",
# default_value="false",
# description="Start robot with mock hardware mirroring command to its states.",
# )
# )
declared_arguments.append(
DeclareLaunchArgument(
"use_rviz",
default_value="false",
description="Start RViz2 automatically with this launch file.",
)
)
declared_arguments.append(
DeclareLaunchArgument(
"use_mock_hardware",
default_value="false",
description="Start robot with mock hardware mirroring command to its states.",
)
)

# Initialize Arguments
# gui = LaunchConfiguration("gui")
# use_mock_hardware = LaunchConfiguration("use_mock_hardware")
use_rviz = LaunchConfiguration("use_rviz")
use_mock_hardware = LaunchConfiguration("use_mock_hardware")

# Get URDF via xacro
robot_description_content = Command(
Expand All @@ -52,9 +52,8 @@ def generate_launch_description():
PathJoinSubstitution(
[FindPackageShare("odrive_botwheel_explorer"), "urdf", "diffbot.urdf.xacro"]
),
# " ",
# "use_mock_hardware:=",
# use_mock_hardware,
" ",
"use_mock_hardware:=", use_mock_hardware,
]
)
robot_description = {"robot_description": robot_description_content}
Expand All @@ -66,9 +65,9 @@ def generate_launch_description():
"diffbot_controllers.yaml",
]
)
# rviz_config_file = PathJoinSubstitution(
# [FindPackageShare("ros2_control_demo_description"), "diffbot/rviz", "diffbot.rviz"]
# )
rviz_config_file = PathJoinSubstitution(
[FindPackageShare("odrive_botwheel_explorer"), "config", "odrive_botwheel_explorer.rviz"]
)

control_node = Node(
package="controller_manager",
Expand All @@ -88,14 +87,14 @@ def generate_launch_description():
("/botwheel_explorer/cmd_vel_unstamped", "/cmd_vel"),
],
)
# rviz_node = Node(
# package="rviz2",
# executable="rviz2",
# name="rviz2",
# output="log",
# arguments=["-d", rviz_config_file],
# condition=IfCondition(gui),
# )
rviz_node = Node(
package="rviz2",
executable="rviz2",
name="rviz2",
output="log",
arguments=["-d", rviz_config_file],
condition=IfCondition(use_rviz),
)

joint_state_broadcaster_spawner = Node(
package="controller_manager",
Expand All @@ -109,13 +108,13 @@ def generate_launch_description():
arguments=["botwheel_explorer", "--controller-manager", "/controller_manager"],
)

# # Delay rviz start after `joint_state_broadcaster`
# delay_rviz_after_joint_state_broadcaster_spawner = RegisterEventHandler(
# event_handler=OnProcessExit(
# target_action=joint_state_broadcaster_spawner,
# on_exit=[rviz_node],
# )
# )
# Delay rviz start after `joint_state_broadcaster`
delay_rviz_after_joint_state_broadcaster_spawner = RegisterEventHandler(
event_handler=OnProcessExit(
target_action=joint_state_broadcaster_spawner,
on_exit=[rviz_node],
)
)

# Delay start of robot_controller after `joint_state_broadcaster`
delay_robot_controller_spawner_after_joint_state_broadcaster_spawner = RegisterEventHandler(
Expand All @@ -129,7 +128,7 @@ def generate_launch_description():
control_node,
robot_state_pub_node,
joint_state_broadcaster_spawner,
#delay_rviz_after_joint_state_broadcaster_spawner,
delay_rviz_after_joint_state_broadcaster_spawner,
delay_robot_controller_spawner_after_joint_state_broadcaster_spawner,
]

Expand Down
2 changes: 2 additions & 0 deletions odrive_node/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ endif()
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rosidl_default_generators REQUIRED)
find_package(std_srvs REQUIRED)

rosidl_generate_interfaces(${PROJECT_NAME}
"msg/ControlMessage.msg"
Expand All @@ -30,6 +31,7 @@ add_executable(odrive_can_node

ament_target_dependencies(odrive_can_node
rclcpp
std_srvs
)

target_compile_features(odrive_can_node PRIVATE cxx_std_20)
Expand Down
Loading

0 comments on commit 7039070

Please sign in to comment.