feat: add Yahboom vehicle module for LMS
This commit is contained in:
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"sourceType": "GIT",
|
||||||
|
"name": "NAV2-Yahboom",
|
||||||
|
"category": "Vehicle",
|
||||||
|
"dockerImage": "future-nav2:humble-yahboom",
|
||||||
|
"packageName": "yahboom_vehicle",
|
||||||
|
"launchFile": "vehicle.launch.py"
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
build/
|
||||||
|
install/
|
||||||
|
log/
|
||||||
|
__pycache__/
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# NAV2-Yahboom
|
||||||
|
|
||||||
|
LMS 전용 템플릿 저장소입니다. 설치 폴더: `[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws`
|
||||||
|
|
||||||
|
- 패키지: `yahboom_vehicle`
|
||||||
|
- 런치: `vehicle.launch.py`
|
||||||
|
- 이미지: `future-nav2:humble-yahboom`
|
||||||
|
- 앱의 야붐 실행기 지원이 반영되어야 합니다.
|
||||||
|
- 서버 과정의 야붐 전용 환경에 이 모듈과 이미지 아티팩트를 등록한 후
|
||||||
|
LMS에서 설치 -> 빌드 -> 실행합니다.
|
||||||
|
- ROS_DOMAIN_ID는 ESP32 설정과 일치시킵니다. GPU 가속은 끕니다.
|
||||||
|
- 컨테이너 장치: 없음
|
||||||
|
- SLAM과 Localization은 동시에 실행하지 않습니다.
|
||||||
|
- 실차 검증 전 소스입니다. 바퀴를 띄우고 비상정지와 명령 타임아웃을 확인하세요.
|
||||||
|
|
||||||
|
원본 소스: https://github.com/KingKiser/hkit_yahboom_ws
|
||||||
|
작성자 박승휘, 원본 package.xml 저작자 Leo Cho, 원본 라이선스 표기 Apache 2.0.
|
||||||
|
재배포 전 자산 라이선스를 확인하세요.
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
MODULE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
RUNTIME_ROOT="${AUTONOMY_STUDIO_RUNTIME_ROOT:-$HOME/autonomy-studio/runtime/nav2}"
|
||||||
|
FOLDER_NAME="$(basename "$MODULE_PATH")"
|
||||||
|
IMAGE="${NAV2_DOCKER_IMAGE:-future-nav2:humble-yahboom}"
|
||||||
|
exec bash "$RUNTIME_ROOT/docker/docker_build_nav2.sh" "$(dirname "$MODULE_PATH")" "$FOLDER_NAME" "$IMAGE" "${ROS_DOMAIN_ID:-20}"
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
MODULE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
RUNTIME_ROOT="${AUTONOMY_STUDIO_RUNTIME_ROOT:-$HOME/autonomy-studio/runtime/nav2}"
|
||||||
|
FOLDER_NAME="$(basename "$MODULE_PATH")"
|
||||||
|
IMAGE="${NAV2_DOCKER_IMAGE:-future-nav2:humble-yahboom}"
|
||||||
|
ROS_PARAM=''
|
||||||
|
CONTAINER_NAME="${FOLDER_NAME#\[}"
|
||||||
|
CONTAINER_NAME="${CONTAINER_NAME/\]/-}"
|
||||||
|
CONTAINER_NAME="${CONTAINER_NAME%_ws}"
|
||||||
|
read -r -a DEFAULT_ARGS <<< "$ROS_PARAM"
|
||||||
|
exec bash "$RUNTIME_ROOT/docker/docker_run_nav2.sh" "$CONTAINER_NAME" "$(dirname "$MODULE_PATH")" "$FOLDER_NAME" "$IMAGE" "${ROS_DOMAIN_ID:-20}" "${GPU_ENABLED:-false}" "${DEFAULT_ARGS[@]}" "$@"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.8)
|
||||||
|
project(yahboom_vehicle)
|
||||||
|
find_package(ament_cmake REQUIRED)
|
||||||
|
install(DIRECTORY launch urdf meshes DESTINATION share/${PROJECT_NAME})
|
||||||
|
install(PROGRAMS scripts/odom_bridge.py DESTINATION lib/${PROJECT_NAME})
|
||||||
|
ament_package()
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
import os
|
||||||
|
from ament_index_python.packages import get_package_share_directory
|
||||||
|
from launch import LaunchDescription
|
||||||
|
from launch.actions import DeclareLaunchArgument
|
||||||
|
from launch.substitutions import LaunchConfiguration
|
||||||
|
from launch_ros.actions import Node
|
||||||
|
|
||||||
|
from launch_ros.parameter_descriptions import ParameterValue
|
||||||
|
|
||||||
|
def generate_launch_description():
|
||||||
|
share = get_package_share_directory("yahboom_vehicle")
|
||||||
|
with open(os.path.join(share, "urdf", "yahboom.urdf"), encoding="utf-8") as stream:
|
||||||
|
description = stream.read()
|
||||||
|
return LaunchDescription([
|
||||||
|
DeclareLaunchArgument("publish_odom_tf", default_value="true"),
|
||||||
|
Node(package="robot_state_publisher", executable="robot_state_publisher",
|
||||||
|
parameters=[{"robot_description": description, "use_sim_time": False}],
|
||||||
|
output="screen"),
|
||||||
|
Node(package="yahboom_vehicle", executable="odom_bridge.py", output="screen",
|
||||||
|
parameters=[{"publish_odom_tf": ParameterValue(
|
||||||
|
LaunchConfiguration("publish_odom_tf"), value_type=bool)}]),
|
||||||
|
])
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<package format="3">
|
||||||
|
<name>yahboom_vehicle</name>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<description>Yahboom LMS vehicle module, adapted from hkit_yahboom_ws.</description>
|
||||||
|
<maintainer email="support@futuredrive.net">FutureDrive</maintainer>
|
||||||
|
<license>Apache-2.0</license>
|
||||||
|
<buildtool_depend>ament_cmake</buildtool_depend>
|
||||||
|
<exec_depend>launch</exec_depend>
|
||||||
|
<exec_depend>launch_ros</exec_depend>
|
||||||
|
<exec_depend>ament_index_python</exec_depend>
|
||||||
|
<exec_depend>rclpy</exec_depend>
|
||||||
|
<exec_depend>nav_msgs</exec_depend>
|
||||||
|
<exec_depend>tf2_ros</exec_depend>
|
||||||
|
<exec_depend>robot_state_publisher</exec_depend>
|
||||||
|
<export><build_type>ament_cmake</build_type></export>
|
||||||
|
</package>
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# Adapted from hkit_yahboom_ws/amr_server/odom_tf_broadcaster.py.
|
||||||
|
import copy
|
||||||
|
import rclpy
|
||||||
|
from rclpy.node import Node
|
||||||
|
from rclpy.qos import qos_profile_sensor_data
|
||||||
|
from nav_msgs.msg import Odometry
|
||||||
|
from geometry_msgs.msg import TransformStamped
|
||||||
|
from tf2_ros import TransformBroadcaster
|
||||||
|
|
||||||
|
|
||||||
|
class OdomBridge(Node):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__("yahboom_odom_bridge")
|
||||||
|
self.publish_tf = self.declare_parameter("publish_odom_tf", True).value
|
||||||
|
self.source_frame = self.declare_parameter("source_frame", "odom_frame").value
|
||||||
|
self.source_child = self.declare_parameter("source_child", "base_footprint").value
|
||||||
|
self.tf = TransformBroadcaster(self)
|
||||||
|
self.publisher = self.create_publisher(Odometry, "/odom", 10)
|
||||||
|
self.subscription = self.create_subscription(
|
||||||
|
Odometry, "/odom_raw", self.on_odom, qos_profile_sensor_data)
|
||||||
|
|
||||||
|
def on_odom(self, incoming):
|
||||||
|
if (incoming.header.frame_id != self.source_frame
|
||||||
|
or incoming.child_frame_id != self.source_child):
|
||||||
|
self.get_logger().warning(
|
||||||
|
"Unexpected /odom_raw frames; check source_frame/source_child",
|
||||||
|
throttle_duration_sec=5.0)
|
||||||
|
return
|
||||||
|
message = copy.deepcopy(incoming)
|
||||||
|
# Rename the known wheel-odometry frame consistently for LMS and Nav2.
|
||||||
|
message.header.frame_id = "odom"
|
||||||
|
message.child_frame_id = "base_footprint"
|
||||||
|
self.publisher.publish(message)
|
||||||
|
if self.publish_tf:
|
||||||
|
transform = TransformStamped()
|
||||||
|
transform.header = message.header
|
||||||
|
transform.child_frame_id = message.child_frame_id
|
||||||
|
transform.transform.translation.x = message.pose.pose.position.x
|
||||||
|
transform.transform.translation.y = message.pose.pose.position.y
|
||||||
|
transform.transform.translation.z = message.pose.pose.position.z
|
||||||
|
transform.transform.rotation = message.pose.pose.orientation
|
||||||
|
self.tf.sendTransform(transform)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
rclpy.init()
|
||||||
|
node = OdomBridge()
|
||||||
|
try:
|
||||||
|
rclpy.spin(node)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
node.destroy_node()
|
||||||
|
rclpy.shutdown()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
@@ -0,0 +1,247 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<robot name="micro4.0">
|
||||||
|
<link name="base_footprint" />
|
||||||
|
<joint name="base_footprint_to_base_link" type="fixed">
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<parent link="base_footprint" />
|
||||||
|
<child link="base_link" />
|
||||||
|
</joint>
|
||||||
|
<link name="base_link">
|
||||||
|
<inertial>
|
||||||
|
<origin xyz="-0.0038187037800903 -0.000532399212617988 -0.00668209865413972" rpy="0 0 0" />
|
||||||
|
<mass value="0.222555109690442" />
|
||||||
|
<inertia ixx="0.000160582675692647" ixy="-8.18530574494391E-07" ixz="-2.74575507729664E-06" iyy="0.000176217109527607" iyz="1.64721285063183E-07" izz="0.000302441932451338" />
|
||||||
|
</inertial>
|
||||||
|
<visual>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/base_link.STL" />
|
||||||
|
</geometry>
|
||||||
|
<material name="">
|
||||||
|
<color rgba="1 1 1 1" />
|
||||||
|
</material>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/base_link.STL" />
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
<link name="zq_Link">
|
||||||
|
<inertial>
|
||||||
|
<origin xyz="2.84786462870987E-05 0.00150864010556555 -6.41979491855862E-06" rpy="0 0 0" />
|
||||||
|
<mass value="0.0141019725825625" />
|
||||||
|
<inertia ixx="2.6630099758609E-06" ixy="1.26357217848149E-10" ixz="3.48142402253186E-10" iyy="4.6848091087889E-06" iyz="1.13495192666687E-11" izz="2.66447797487454E-06" />
|
||||||
|
</inertial>
|
||||||
|
<visual>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/zq_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
<material name="">
|
||||||
|
<color rgba="0.647058823529412 0.619607843137255 0.588235294117647 1" />
|
||||||
|
</material>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/zq_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
<joint name="zq_Joint" type="fixed">
|
||||||
|
<origin xyz="0.0455 0.0675 -0.02125" rpy="0 0 0" />
|
||||||
|
<parent link="base_link" />
|
||||||
|
<child link="zq_Link" />
|
||||||
|
</joint>
|
||||||
|
<link name="yq_Link">
|
||||||
|
<inertial>
|
||||||
|
<origin xyz="2.46503405071305E-05 -0.00150864013768208 1.56400066804556E-05" rpy="0 0 0" />
|
||||||
|
<mass value="0.0141019726622963" />
|
||||||
|
<inertia ixx="2.66339752604607E-06" ixy="-1.22792569566631E-10" ixz="-7.34799731138498E-10" iyy="4.68480910880912E-06" iyz="-3.18889570074274E-11" izz="2.66409042506092E-06" />
|
||||||
|
</inertial>
|
||||||
|
<visual>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/yq_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
<material name="">
|
||||||
|
<color rgba="0.647058823529412 0.619607843137255 0.588235294117647 1" />
|
||||||
|
</material>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/yq_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
<joint name="yq_Joint" type="fixed">
|
||||||
|
<origin xyz="0.0455 -0.0675 -0.02125" rpy="0 0 0" />
|
||||||
|
<parent link="base_link" />
|
||||||
|
<child link="yq_Link" />
|
||||||
|
</joint>
|
||||||
|
<link name="yh_Link">
|
||||||
|
<inertial>
|
||||||
|
<origin xyz="-3.70764732487289E-06 -0.00150864010086474 -2.89569007898387E-05" rpy="0 0 0" />
|
||||||
|
<mass value="0.0141019725703797" />
|
||||||
|
<inertia ixx="2.66453003257312E-06" ixy="5.38819271008195E-11" ixz="-2.05112988374728E-10" iyy="4.68480910877904E-06" iyz="1.14855312609176E-10" izz="2.66295791816006E-06" />
|
||||||
|
</inertial>
|
||||||
|
<visual>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/yh_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
<material name="">
|
||||||
|
<color rgba="0.647058823529412 0.619607843137255 0.588235294117647 1" />
|
||||||
|
</material>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/yh_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
<joint name="yh_Joint" type="fixed">
|
||||||
|
<origin xyz="-0.0495 -0.0675 -0.02125" rpy="0 0 0" />
|
||||||
|
<parent link="base_link" />
|
||||||
|
<child link="yh_Link" />
|
||||||
|
</joint>
|
||||||
|
<link name="zh_Link">
|
||||||
|
<inertial>
|
||||||
|
<origin xyz="2.71005454374126E-05 0.00150864011455075 -1.08539409463503E-05" rpy="0 0 0" />
|
||||||
|
<mass value="0.0141019726113614" />
|
||||||
|
<inertia ixx="2.66315588150881E-06" ixy="1.26558270834104E-10" ixz="5.60449660674614E-10" iyy="4.68480910884624E-06" iyz="-8.82832301592923E-12" izz="2.66433206935428E-06" />
|
||||||
|
</inertial>
|
||||||
|
<visual>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/zh_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
<material name="">
|
||||||
|
<color rgba="0.647058823529412 0.619607843137255 0.588235294117647 1" />
|
||||||
|
</material>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/zh_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
<joint name="zh_Joint" type="fixed">
|
||||||
|
<origin xyz="-0.0495 0.0675 -0.02125" rpy="0 0 0" />
|
||||||
|
<parent link="base_link" />
|
||||||
|
<child link="zh_Link" />
|
||||||
|
</joint>
|
||||||
|
<link name="imu_frame">
|
||||||
|
<inertial>
|
||||||
|
<origin xyz="-0.0316761324986627 0.00132159782250217 -0.000479349648167576" rpy="0 0 0" />
|
||||||
|
<mass value="0.0132101454078263" />
|
||||||
|
<inertia ixx="2.09255982058915E-06" ixy="-1.5860144299643E-08" ixz="-3.27485068549135E-10" iyy="4.73790359695282E-06" iyz="-2.29375131893769E-10" izz="6.79434472621533E-06" />
|
||||||
|
</inertial>
|
||||||
|
<visual>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/imu_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
<material name="">
|
||||||
|
<color rgba="0.149019607843137 0.149019607843137 0.149019607843137 1" />
|
||||||
|
</material>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/imu_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
<joint name="imu_fixed_joint" type="fixed">
|
||||||
|
<origin xyz="-0.002999 -0.0030001 0.031701" rpy="0 0 0" />
|
||||||
|
<parent link="base_link" />
|
||||||
|
<child link="imu_frame" />
|
||||||
|
</joint>
|
||||||
|
<link name="laser_frame">
|
||||||
|
<inertial>
|
||||||
|
<origin xyz="2.50028066700073E-05 9.8943368066196E-05 -0.0175251744352531" rpy="0 0 0" />
|
||||||
|
<mass value="0.0384696758414604" />
|
||||||
|
<inertia ixx="8.81880784590578E-06" ixy="-1.66165059019566E-07" ixz="-1.11024960466139E-07" iyy="1.44967275960782E-05" iyz="-3.88415222298422E-08" izz="2.24335777017028E-05" />
|
||||||
|
</inertial>
|
||||||
|
<visual>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/radar_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
<material name="">
|
||||||
|
<color rgba="0.180392156862745 0.180392156862745 0.180392156862745 1" />
|
||||||
|
</material>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/radar_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
<joint name="laser_fixed_joint" type="fixed">
|
||||||
|
<origin xyz="0 0 0.078933557468359" rpy="0 0 0" />
|
||||||
|
<parent link="base_link" />
|
||||||
|
<child link="laser_frame" />
|
||||||
|
</joint>
|
||||||
|
<link name="jq1_Link">
|
||||||
|
<inertial>
|
||||||
|
<origin xyz="0.0110585433790032 -0.00605208841063553 0.015781881952638" rpy="0 0 0" />
|
||||||
|
<mass value="0.0115074341427154" />
|
||||||
|
<inertia ixx="1.61581689683415E-06" ixy="1.00926034806027E-09" ixz="-2.6905085628935E-07" iyy="9.62368700578607E-07" iyz="7.36350494885753E-09" izz="1.35577194148353E-06" />
|
||||||
|
</inertial>
|
||||||
|
<visual>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/jq1_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
<material name="">
|
||||||
|
<color rgba="0.776470588235294 0.756862745098039 0.737254901960784 1" />
|
||||||
|
</material>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/jq1_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
<joint name="jq1_Joint" type="fixed">
|
||||||
|
<origin xyz="0.064 0 0.014" rpy="0 0 0" />
|
||||||
|
<parent link="base_link" />
|
||||||
|
<child link="jq1_Link" />
|
||||||
|
</joint>
|
||||||
|
<link name="jq2_Link">
|
||||||
|
<inertial>
|
||||||
|
<origin xyz="0.0135058163511177 0.000857671482029795 0.00288177408889561" rpy="0 0 0" />
|
||||||
|
<mass value="0.0133313425901211" />
|
||||||
|
<inertia ixx="1.96303534926057E-06" ixy="3.68224074620386E-09" ixz="2.60821852145315E-07" iyy="1.5250310537691E-06" iyz="5.421881574463E-09" izz="1.9926579435283E-06" />
|
||||||
|
</inertial>
|
||||||
|
<visual>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/jq2_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
<material name="">
|
||||||
|
<color rgba="0.298039215686275 0.298039215686275 0.298039215686275 1" />
|
||||||
|
</material>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://yahboom_vehicle/meshes/jq2_Link.STL" />
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
<joint name="jq2_Joint" type="fixed">
|
||||||
|
<origin xyz="0.016864 8.4892E-05 0.023959" rpy="0 0 0" />
|
||||||
|
<parent link="jq1_Link" />
|
||||||
|
<child link="jq2_Link" />
|
||||||
|
</joint>
|
||||||
|
</robot>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
MODULE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
RUNTIME_ROOT="${AUTONOMY_STUDIO_RUNTIME_ROOT:-$HOME/autonomy-studio/runtime/nav2}"
|
||||||
|
FOLDER_NAME="$(basename "$MODULE_PATH")"
|
||||||
|
IMAGE="${NAV2_DOCKER_IMAGE:-future-nav2:humble-yahboom}"
|
||||||
|
CONTAINER_NAME="${FOLDER_NAME#\[}"
|
||||||
|
CONTAINER_NAME="${CONTAINER_NAME/\]/-}"
|
||||||
|
CONTAINER_NAME="${CONTAINER_NAME%_ws}"
|
||||||
|
docker stop -t 10 "$CONTAINER_NAME"
|
||||||
Reference in New Issue
Block a user