From 1b29949f70ea4d03f9793048943c8b10044c2935 Mon Sep 17 00:00:00 2001 From: Hyunseok Date: Mon, 10 Jun 2024 11:05:22 +0900 Subject: [PATCH 01/15] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c5f1c884..2c9966a3 100644 --- a/README.md +++ b/README.md @@ -63,13 +63,13 @@ Apply namespaceas each robot as a multi robot mode. **Strongly recommend to use this method.** ```shell -ros2 launch cloisim_ros_bringup bringup.launch.py +ros2 launch cloisim_ros_bringup bringup_launch.py ``` or ```shell -ros2 launch cloisim_ros_bringup bringup.launch.py single_mode:=False +ros2 launch cloisim_ros_bringup bringup_launch.py single_mode:=False ``` #### Turn on single Mode @@ -77,7 +77,7 @@ ros2 launch cloisim_ros_bringup bringup.launch.py single_mode:=False It shall NOT be applied namespace for robot and the number of robot must BE single in world environment. ```shell -ros2 launch cloisim_ros_bringup bringup.launch.py single_mode:=True +ros2 launch cloisim_ros_bringup bringup_launch.py single_mode:=True ``` ## Running CLOiSim @@ -85,7 +85,7 @@ ros2 launch cloisim_ros_bringup bringup.launch.py single_mode:=True It provides a script to run CLOiSim easily. ```shell -ros2 launch cloisim_ros_bringup cloisim.launch.py sim_path:=/opt/CLOiSim/CLOiSim-2.2.0 world:=lg_seocho.world +ros2 launch cloisim_ros_bringup cloisim_launch.py sim_path:=/opt/CLOiSim/CLOiSim-2.2.0 world:=lg_seocho.world ``` ## Using Docker From 318cefa8ddd7aa38c26dfeca2869bd74c8687173 Mon Sep 17 00:00:00 2001 From: Hyunseok Date: Mon, 10 Jun 2024 11:06:13 +0900 Subject: [PATCH 02/15] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2c9966a3..5f462c5e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# cloisim_ros (humble version) +# cloisim_ros (jazzy version) ROS2 simulation device packages to connect CLOiSim(the unity3D based multi-robot simulator). @@ -7,11 +7,11 @@ ROS2 simulation device packages to connect CLOiSim(the unity3D based multi-robot - Latest version: [link](https://github.com/lge-ros2/cloisim/releases/latest) - All Releases: [link](https://github.com/lge-ros2/cloisim/releases) -## Install ROS2 humble +## Install ROS2 jazzy follow the guideline on below link. - + ## Prerequisite From 6a4982b279155f1b8826d359a483b31333f3fcda Mon Sep 17 00:00:00 2001 From: Hyunseok Date: Mon, 10 Jun 2024 11:06:48 +0900 Subject: [PATCH 03/15] Update Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6cfbf74e..7cb659e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ros:humble-ros-base +FROM ros:jazzy-ros-base ENV HOSTNAME cloisim_ros From e56befd3d459758069c7b2f2ac8737824aae57f2 Mon Sep 17 00:00:00 2001 From: "jamie.lee" Date: Sun, 23 Jun 2024 15:45:42 +0900 Subject: [PATCH 04/15] chekcing nullptr at Base::PublishTf --- cloisim_ros_base/include/cloisim_ros_base/base.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cloisim_ros_base/include/cloisim_ros_base/base.hpp b/cloisim_ros_base/include/cloisim_ros_base/base.hpp index 144e562d..beea6cd3 100644 --- a/cloisim_ros_base/include/cloisim_ros_base/base.hpp +++ b/cloisim_ros_base/include/cloisim_ros_base/base.hpp @@ -167,7 +167,10 @@ inline void Base::AddStaticTf2(const geometry_msgs::msg::TransformStamped tf) inline void Base::PublishTF(const geometry_msgs::msg::TransformStamped& tf) { - m_tf_broadcaster->sendTransform(tf); + if (m_tf_broadcaster != nullptr) + { + m_tf_broadcaster->sendTransform(tf); + } } inline cloisim::msgs::Pose Base::GetObjectTransform(zmq::Bridge* const bridge_ptr, From 8512672e6cebe72f062c0cedf07fdb2e6a072430 Mon Sep 17 00:00:00 2001 From: "jamie.lee" Date: Sun, 23 Jun 2024 15:46:46 +0900 Subject: [PATCH 05/15] disable publishing tf temorally --- cloisim_ros_micom/src/micom.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cloisim_ros_micom/src/micom.cpp b/cloisim_ros_micom/src/micom.cpp index afa14690..486c0bad 100644 --- a/cloisim_ros_micom/src/micom.cpp +++ b/cloisim_ros_micom/src/micom.cpp @@ -34,7 +34,7 @@ Micom::Micom( const string namespace_) : Base(node_name, namespace_, options_) { - Start(); + Start(false); // FIXME: broadcasting tf is disabled temporally } Micom::Micom(const string namespace_) @@ -80,7 +80,7 @@ void Micom::Initialize() { msg_odom_.header.frame_id = "odom"; - msg_odom_.child_frame_id = "base_footprint"; + msg_odom_.child_frame_id = "base_link"; SetTf2(odom_tf_, msg_odom_.child_frame_id, msg_odom_.header.frame_id); From 0ea031214e61a5cb3968872a16bb905b0a35c5c1 Mon Sep 17 00:00:00 2001 From: "jamie.lee" Date: Sun, 23 Jun 2024 15:47:03 +0900 Subject: [PATCH 06/15] add optical frame for cameras --- .../include/cloisim_ros_camera/camera_base.hpp | 1 + cloisim_ros_camera/src/camera_base.cpp | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/cloisim_ros_camera/include/cloisim_ros_camera/camera_base.hpp b/cloisim_ros_camera/include/cloisim_ros_camera/camera_base.hpp index 38f3eba0..8301de6c 100644 --- a/cloisim_ros_camera/include/cloisim_ros_camera/camera_base.hpp +++ b/cloisim_ros_camera/include/cloisim_ros_camera/camera_base.hpp @@ -49,6 +49,7 @@ class CameraBase : public Base protected: std::string frame_id_; + std::string optical_frame_id_; std::string topic_base_name_; // image buffer from simulator diff --git a/cloisim_ros_camera/src/camera_base.cpp b/cloisim_ros_camera/src/camera_base.cpp index 05032850..182beabb 100644 --- a/cloisim_ros_camera/src/camera_base.cpp +++ b/cloisim_ros_camera/src/camera_base.cpp @@ -30,6 +30,7 @@ CameraBase::CameraBase( const string namespace_) : Base(node_name, namespace_, options_) , frame_id_("camera_link") + , optical_frame_id_("camera_optical_frame") , topic_base_name_("") { topic_name_ = "camera"; @@ -73,9 +74,17 @@ void CameraBase::InitializeCameraInfo() GetRos2Parameter(info_bridge_ptr); frame_id_ = GetPartsName() + "_" + GetFrameId("camera_link"); - auto transform_pose = GetObjectTransform(info_bridge_ptr); - transform_pose.set_name(frame_id_); - SetStaticTf2(transform_pose); + auto link_frame_transform_pose = GetObjectTransform(info_bridge_ptr); + link_frame_transform_pose.set_name(frame_id_); + SetStaticTf2(link_frame_transform_pose); + optical_frame_id_ = GetPartsName() + "_camera_optical_frame"; + cloisim::msgs::Pose optical_frame_transform_pose; + optical_frame_transform_pose.mutable_orientation()->set_x(-0.5); + optical_frame_transform_pose.mutable_orientation()->set_y(0.5); + optical_frame_transform_pose.mutable_orientation()->set_z(-0.5); + optical_frame_transform_pose.mutable_orientation()->set_w(0.5); + optical_frame_transform_pose.set_name(optical_frame_id_); + SetStaticTf2(optical_frame_transform_pose, frame_id_); camera_info_manager_ = std::make_shared(GetNode().get()); const auto camSensorMsg = GetCameraSensorMessage(info_bridge_ptr); @@ -87,7 +96,7 @@ void CameraBase::InitializeCameraInfo() void CameraBase::InitializeCameraPublish() { - msg_img_.header.frame_id = frame_id_; + msg_img_.header.frame_id = optical_frame_id_; topic_base_name_ = GetPartsName() + "/" + topic_name_; From b6554639dd9e8aefc6350b5891f15fdcf4e1cd6b Mon Sep 17 00:00:00 2001 From: "Hyunseok Yang (YG)" Date: Mon, 24 Jun 2024 11:51:42 +0900 Subject: [PATCH 07/15] Modify child_frame_id for odom message in cloisim_ros_micom : odom -> base_footprint --- cloisim_ros_camera/src/camera_base.cpp | 1 + cloisim_ros_micom/src/micom.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cloisim_ros_camera/src/camera_base.cpp b/cloisim_ros_camera/src/camera_base.cpp index 182beabb..a845142b 100644 --- a/cloisim_ros_camera/src/camera_base.cpp +++ b/cloisim_ros_camera/src/camera_base.cpp @@ -77,6 +77,7 @@ void CameraBase::InitializeCameraInfo() auto link_frame_transform_pose = GetObjectTransform(info_bridge_ptr); link_frame_transform_pose.set_name(frame_id_); SetStaticTf2(link_frame_transform_pose); + optical_frame_id_ = GetPartsName() + "_camera_optical_frame"; cloisim::msgs::Pose optical_frame_transform_pose; optical_frame_transform_pose.mutable_orientation()->set_x(-0.5); diff --git a/cloisim_ros_micom/src/micom.cpp b/cloisim_ros_micom/src/micom.cpp index 486c0bad..d61febbf 100644 --- a/cloisim_ros_micom/src/micom.cpp +++ b/cloisim_ros_micom/src/micom.cpp @@ -80,7 +80,7 @@ void Micom::Initialize() { msg_odom_.header.frame_id = "odom"; - msg_odom_.child_frame_id = "base_link"; + msg_odom_.child_frame_id = "base_footprint"; SetTf2(odom_tf_, msg_odom_.child_frame_id, msg_odom_.header.frame_id); From dcabdfc30ba8fe1746764e202b06c684c55c63bf Mon Sep 17 00:00:00 2001 From: "Hyunseok Yang (YG)" Date: Mon, 24 Jun 2024 12:50:50 +0900 Subject: [PATCH 08/15] Modfiy default c_cpp_properties for vscode --- .vscode/c_cpp_properties.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index bb6a82e1..87495e3f 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -5,10 +5,10 @@ "includePath": [ "/opt/ros/humble/include", "${workspaceFolder}/**", - "${workspaceFolder}/../../install/perception_msgs/include/", - "${workspaceFolder}/../../install/elevator_system_msgs/include/", - "${workspaceFolder}/../../install/cloisim_ros_protobuf_msgs/include/", - "${workspaceFolder}/../../install/cloisim_ros_msgs/include/", + "${workspaceFolder}/../../../install/perception_msgs/include/", + "${workspaceFolder}/../../../install/elevator_system_msgs/include/", + "${workspaceFolder}/../../../install/cloisim_ros_protobuf_msgs/include/", + "${workspaceFolder}/../../../install/cloisim_ros_msgs/include/", "${workspaceFolder}/../../../install/perception_msgs/include/", "${workspaceFolder}/../../../install/elevator_system_msgs/include/", "${workspaceFolder}/../../../install/cloisim_ros_protobuf_msgs/include/", @@ -17,7 +17,7 @@ "defines": [], "compilerPath": "/usr/bin/gcc", "cStandard": "gnu17", - "cppStandard": "gnu++14", + "cppStandard": "gnu++17", "intelliSenseMode": "gcc-x64" } ], From 6fd4f807c24bca803c536fcb9996bae55e099d26 Mon Sep 17 00:00:00 2001 From: "Hyunseok Yang (YG)" Date: Mon, 24 Jun 2024 13:44:04 +0900 Subject: [PATCH 09/15] Suppress log print in BringUpParam::GetFilteredListByParameters() --- cloisim_ros_bringup_param/src/bringup_param.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloisim_ros_bringup_param/src/bringup_param.cpp b/cloisim_ros_bringup_param/src/bringup_param.cpp index 1348d3df..af407646 100644 --- a/cloisim_ros_bringup_param/src/bringup_param.cpp +++ b/cloisim_ros_bringup_param/src/bringup_param.cpp @@ -128,7 +128,7 @@ Json::Value BringUpParam::RequestBringUpList() Json::Value BringUpParam::GetFilteredListByParameters(const Json::Value result) { Json::Value root; - cout << result << endl; + // cout << result << endl; for (auto it = result.begin(); it != result.end(); it++) { const auto node_namespace = it.key().asString(); From e4101b0a064ae75ee164d765b73641fdbeb74e28 Mon Sep 17 00:00:00 2001 From: "Hyunseok Yang (YG)" Date: Mon, 24 Jun 2024 14:50:33 +0900 Subject: [PATCH 10/15] Add switchable TF/TFstatic publishing through `enable_tf` parameter in Base class --- cloisim_ros_base/README.md | 10 ++++++++++ .../include/cloisim_ros_base/base.hpp | 10 +++++++++- cloisim_ros_base/src/base.cpp | 3 +++ cloisim_ros_camera/README.md | 20 +++++++++++++++---- cloisim_ros_gps/README.md | 10 ++++++++-- cloisim_ros_imu/README.md | 15 ++++++++++---- cloisim_ros_joint_control/README.md | 9 +++++++-- cloisim_ros_lidar/README.md | 10 ++++++++-- cloisim_ros_micom/README.md | 10 ++++++++-- cloisim_ros_micom/src/micom.cpp | 2 +- cloisim_ros_multicamera/README.md | 10 ++++++++-- cloisim_ros_realsense/README.md | 10 ++++++++-- cloisim_ros_sonar/README.md | 14 +++++++++---- 13 files changed, 107 insertions(+), 26 deletions(-) diff --git a/cloisim_ros_base/README.md b/cloisim_ros_base/README.md index 488f8308..7a7bda8d 100644 --- a/cloisim_ros_base/README.md +++ b/cloisim_ros_base/README.md @@ -31,3 +31,13 @@ namespace cloisim_ros } } ``` + +## parameter + +TF/TFStatic is enabled to publish by default. + +If you want disable publishing TF and TF Static, just set the parameter `enable_tf:=False`. + +Some of cloisim_ros packages are not allowed to disable. + +- Actor, Elevator_System, GroundTruth, World diff --git a/cloisim_ros_base/include/cloisim_ros_base/base.hpp b/cloisim_ros_base/include/cloisim_ros_base/base.hpp index beea6cd3..bdf553e1 100644 --- a/cloisim_ros_base/include/cloisim_ros_base/base.hpp +++ b/cloisim_ros_base/include/cloisim_ros_base/base.hpp @@ -69,7 +69,8 @@ class Base : public rclcpp::Node void SetStaticTf2(const cloisim::msgs::Pose transform, const std::string parent_header_frame_id = "base_link"); - void Start(const bool enable_tf_publish = true); + void Start(); + void Start(const bool enable_tf_publish); void Stop(); void AddTf2(const geometry_msgs::msg::TransformStamped tf); @@ -153,8 +154,15 @@ class Base : public rclcpp::Node // for ros2 default parameters std::string topic_name_; std::vector frame_id_list_; + + bool enable_tf_publish_; }; +inline void Base::Start() +{ + Start(enable_tf_publish_); +} + inline void Base::AddTf2(const geometry_msgs::msg::TransformStamped tf) { m_tf_list.push_back(tf); diff --git a/cloisim_ros_base/src/base.cpp b/cloisim_ros_base/src/base.cpp index 6450344f..96e63462 100644 --- a/cloisim_ros_base/src/base.cpp +++ b/cloisim_ros_base/src/base.cpp @@ -53,6 +53,7 @@ Base::Base(const string node_name, const string namespace_, const rclcpp::NodeOp , m_static_tf_broadcaster(nullptr) , m_tf_broadcaster(nullptr) { + get_parameter_or("enable_tf", enable_tf_publish_, bool(true)); } Base::~Base() @@ -74,6 +75,8 @@ void Base::Start(const bool enable_tf_publish) Initialize(); + DBG_SIM_MSG("enable_tf(%d)", enable_tf_publish_); + auto callback_static_tf_pub = [this]() -> void { PublishStaticTF(); diff --git a/cloisim_ros_camera/README.md b/cloisim_ros_camera/README.md index 86fecea0..ada5a6f9 100644 --- a/cloisim_ros_camera/README.md +++ b/cloisim_ros_camera/README.md @@ -51,32 +51,44 @@ ros2 run cloisim_ros_camera camera --ros-args -p target_model:=cloi1 -p target_p ros2 run cloisim_ros_camera depth_camera ``` -or +#### Single mode for depth camera ```shell ros2 run cloisim_ros_camera depth_camera --ros-args -p single_mode:=True -p target_model:=cloi1 -p target_parts_name:=depthcamera ``` -or +#### Namespaced mode for multi-robot with depth camera ```shell ros2 run cloisim_ros_camera depth_camera --ros-args -p target_model:=cloi1 -p target_parts_name:=depthcamera ``` +## disable publishing TF(+TF static) for depth camera + +```shell +ros2 run cloisim_ros_camera depth_camera --ros-args -p enable_tf:=False -p target_model:=cloi1 -p target_parts_name:=depthcamera +``` + ### Segmentation Camera ```shell ros2 run cloisim_ros_camera segmentation_camera ``` -or +#### Single mode for segmentation camera ```shell ros2 run cloisim_ros_camera segmentation_camera --ros-args -p single_mode:=True -p target_model:=cloi -p target_parts_name:=segmentationcamera ``` -or +#### Namespaced mode for multi-robot with segmentation camera ```shell ros2 run cloisim_ros_camera segmentation_camera --ros-args -p target_model:=cloi -p target_parts_name:=segmentationcamera ``` + +#### disable publishing TF(+TF static) for segmentation camera + +```shell +ros2 run cloisim_ros_camera segmentation_camera --ros-args -p enable_tf:=False -p target_model:=cloi1 -p target_parts_name:=segmentationcamera +``` diff --git a/cloisim_ros_gps/README.md b/cloisim_ros_gps/README.md index d3827e11..95052f13 100644 --- a/cloisim_ros_gps/README.md +++ b/cloisim_ros_gps/README.md @@ -8,14 +8,20 @@ Currently noise model is not applied yet. ros2 run cloisim_ros_gps standalone ``` -or +## Single mode ```shell ros2 run cloisim_ros_gps standalone --ros-args -p single_mode:=True -p target_model:=cloi1 -p target_parts_name:=gps ``` -or +## Namespaced mode for multi-robot ```shell ros2 run cloisim_ros_gps standalone --ros-args -p target_model:=cloi1 -p target_parts_name:=gps ``` + +## disable publishing TF(+TF static) + +```shell +ros2 run cloisim_ros_gps standalone --ros-args -p enable_tf:=False -p target_model:=cloi1 -p target_parts_name:=gps +``` diff --git a/cloisim_ros_imu/README.md b/cloisim_ros_imu/README.md index 2226c791..a2beb009 100644 --- a/cloisim_ros_imu/README.md +++ b/cloisim_ros_imu/README.md @@ -8,14 +8,21 @@ Currently noise model is not applied yet. ros2 run cloisim_ros_imu standalone ``` -or +## Single mode ```shell -ros2 run cloisim_ros_imu standalone --ros-args -p single_mode:=True -p target_model:=cloi1 -p target_parts_name:=gps +ros2 run cloisim_ros_imu standalone --ros-args -p single_mode:=True -p target_model:=cloi1 -p target_parts_name:=imu ``` -or +## Namespaced mode for multi-robot ```shell -ros2 run cloisim_ros_imu standalone --ros-args -p target_model:=cloi1 -p target_parts_name:=gps +ros2 run cloisim_ros_imu standalone --ros-args -p target_model:=cloi1 -p target_parts_name:=imu ``` + +## disable publishing TF(+TF static) + +```shell +ros2 run cloisim_ros_imu standalone --ros-args -p enable_tf:=False -p target_model:=cloi1 -p target_parts_name:=imu +``` + diff --git a/cloisim_ros_joint_control/README.md b/cloisim_ros_joint_control/README.md index 94129fc8..c35c5023 100644 --- a/cloisim_ros_joint_control/README.md +++ b/cloisim_ros_joint_control/README.md @@ -8,18 +8,23 @@ support ros remapping, --ros-args -r /test:=test ros2 run cloisim_ros_joint_control standalone ``` -or +## Single mode ```shell ros2 run cloisim_ros_joint_control standalone --ros-args -p single_mode:=True -p target_model:=cloi1 -p target_parts_name:=joint_control ``` -or +## Namespaced mode for multi-robot ```shell ros2 run cloisim_ros_joint_control standalone --ros-args -p target_model:=cloi1 -p target_parts_name:=joint_control ``` +## disable publishing TF(+TF static) + +```shell +ros2 run cloisim_ros_joint_control standalone --ros-args -p enable_tf:=False -p target_model:=cloi1 -p target_parts_name:=joint_control +``` ## Example Usage for Joint diff --git a/cloisim_ros_lidar/README.md b/cloisim_ros_lidar/README.md index c3494837..46da182c 100644 --- a/cloisim_ros_lidar/README.md +++ b/cloisim_ros_lidar/README.md @@ -6,14 +6,20 @@ support ros remapping, --ros-args -r /test:=test ros2 run cloisim_ros_lidar standalone ``` -or +## Single mode ```shell ros2 run cloisim_ros_lidar standalone --ros-args -p single_mode:=True -p target_model:=cloi1 -p target_parts_name:=lidar ``` -or +## Namespaced mode for multi-robot ```shell ros2 run cloisim_ros_lidar standalone --ros-args -p target_model:=cloi1 -p target_parts_name:=lidar ``` + +## disable publishing TF(+TF static) + +```shell +ros2 run cloisim_ros_lidar standalone --ros-args -p enable_tf:=False -p target_model:=cloi1 -p target_parts_name:=lidar +``` diff --git a/cloisim_ros_micom/README.md b/cloisim_ros_micom/README.md index 2b67f18a..7d7e7668 100644 --- a/cloisim_ros_micom/README.md +++ b/cloisim_ros_micom/README.md @@ -8,14 +8,20 @@ support ros remapping, --ros-args -r /test:=test ros2 run cloisim_ros_micom standalone ``` -or +## Single mode ```shell ros2 run cloisim_ros_micom standalone --ros-args -p single_mode:=True -p target_model:=cloi1 -p target_parts_name:=RobotControl ``` -or +## Namespaced mode for multi-robot ```shell ros2 run cloisim_ros_micom standalone --ros-args -p target_model:=cloi1 -p target_parts_name:=RobotControl ``` + +## disable publishing TF(+TF static) + +```shell +ros2 run cloisim_ros_micom standalone --ros-args -p enable_tf:=False -p target_model:=cloi1 -p target_parts_name:=RobotControl +``` diff --git a/cloisim_ros_micom/src/micom.cpp b/cloisim_ros_micom/src/micom.cpp index d61febbf..afa14690 100644 --- a/cloisim_ros_micom/src/micom.cpp +++ b/cloisim_ros_micom/src/micom.cpp @@ -34,7 +34,7 @@ Micom::Micom( const string namespace_) : Base(node_name, namespace_, options_) { - Start(false); // FIXME: broadcasting tf is disabled temporally + Start(); } Micom::Micom(const string namespace_) diff --git a/cloisim_ros_multicamera/README.md b/cloisim_ros_multicamera/README.md index 928920bf..b8562bbb 100644 --- a/cloisim_ros_multicamera/README.md +++ b/cloisim_ros_multicamera/README.md @@ -6,14 +6,20 @@ support ros remapping, --ros-args -r /test:=test ros2 run cloisim_ros_multicamera standalone ``` -or +## Single mode ```shell ros2 run cloisim_ros_multicamera standalone --ros-args -p single_mode:=True -p target_model:=cloi1 -p target_parts_name:=multicamera ``` -or +## Namespaced mode for multi-robot ```shell ros2 run cloisim_ros_multicamera standalone --ros-args -p target_model:=cloi1 -p target_parts_name:=multicamera ``` + +## disable publishing TF(+TF static) + +```shell +ros2 run cloisim_ros_multicamera standalone --ros-args -p enable_tf:=False -p target_model:=cloi1 -p target_parts_name:=multicamera +``` diff --git a/cloisim_ros_realsense/README.md b/cloisim_ros_realsense/README.md index 76733cad..ae9cfdfa 100644 --- a/cloisim_ros_realsense/README.md +++ b/cloisim_ros_realsense/README.md @@ -6,14 +6,20 @@ support ros remapping, --ros-args -r /test:=test ros2 run cloisim_ros_realsense standalone ``` -or +## Single mode ```shell ros2 run cloisim_ros_realsense standalone --ros-args -p single_mode:=True -p target_model:=cloi1 -p target_parts_name:=realsense ``` -or +## Namespaced mode for multi-robot ```shell ros2 run cloisim_ros_realsense standalone --ros-args -p target_model:=cloi1 -p target_parts_name:=realsense ``` + +## disable publishing TF(+TF static) + +```shell +ros2 run cloisim_ros_realsense standalone --ros-args -p enable_tf:=False -p target_model:=cloi1 -p target_parts_name:=realsense +``` diff --git a/cloisim_ros_sonar/README.md b/cloisim_ros_sonar/README.md index b392f316..2cba058f 100644 --- a/cloisim_ros_sonar/README.md +++ b/cloisim_ros_sonar/README.md @@ -8,14 +8,20 @@ Currently noise model is not applied yet. ros2 run cloisim_ros_sonar standalone ``` -or +## Single mode ```shell -ros2 run cloisim_ros_sonar standalone --ros-args -p single_mode:=True -p target_model:=cloi1 -p target_parts_name:=gps +ros2 run cloisim_ros_sonar standalone --ros-args -p single_mode:=True -p target_model:=cloi1 -p target_parts_name:=sonar ``` -or +## Namespaced mode for multi-robot ```shell -ros2 run cloisim_ros_sonar standalone --ros-args -p target_model:=cloi1 -p target_parts_name:=gps +ros2 run cloisim_ros_sonar standalone --ros-args -p target_model:=cloi1 -p target_parts_name:=sonar +``` + +## disable publishing TF(+TF static) + +```shell +ros2 run cloisim_ros_sonar standalone --ros-args -p enable_tf:=False -p target_model:=cloi1 -p target_parts_name:=sonar ``` From 251349ede0f695a511ee6af4297982bbc53c7b61 Mon Sep 17 00:00:00 2001 From: "Hyunseok Yang (YG)" Date: Mon, 24 Jun 2024 14:57:47 +0900 Subject: [PATCH 11/15] Update package.xml --- cloisim_ros_actor/package.xml | 2 -- cloisim_ros_base/package.xml | 3 ++- cloisim_ros_bridge_zmq/package.xml | 2 +- cloisim_ros_bringup/package.xml | 4 +--- cloisim_ros_bringup_param/package.xml | 3 +-- cloisim_ros_camera/package.xml | 5 +++-- cloisim_ros_elevator_system/package.xml | 2 -- cloisim_ros_gps/package.xml | 2 +- cloisim_ros_ground_truth/package.xml | 2 +- cloisim_ros_imu/package.xml | 2 +- cloisim_ros_joint_control/package.xml | 2 +- cloisim_ros_lidar/package.xml | 2 +- cloisim_ros_micom/package.xml | 2 +- cloisim_ros_msgs/package.xml | 1 - cloisim_ros_multicamera/package.xml | 2 +- cloisim_ros_protobuf_msgs/package.xml | 2 +- cloisim_ros_realsense/package.xml | 2 +- cloisim_ros_sonar/package.xml | 2 +- cloisim_ros_websocket_service/package.xml | 2 +- cloisim_ros_world/package.xml | 2 +- 20 files changed, 20 insertions(+), 26 deletions(-) diff --git a/cloisim_ros_actor/package.xml b/cloisim_ros_actor/package.xml index d3cba7e9..35c94c41 100644 --- a/cloisim_ros_actor/package.xml +++ b/cloisim_ros_actor/package.xml @@ -4,9 +4,7 @@ cloisim_ros_actor 4.0.0 node for actor plugin - Hyunseok Yang - MIT ament_cmake diff --git a/cloisim_ros_base/package.xml b/cloisim_ros_base/package.xml index 54ae40e3..bce13e66 100644 --- a/cloisim_ros_base/package.xml +++ b/cloisim_ros_base/package.xml @@ -5,9 +5,10 @@ 4.0.0 CLOiSim-ROS base class for other CLOiSim-ROS Hyunseok Yang - Hyunseok Yang MIT + Hyunseok Yang + ament_cmake rclcpp tf2 diff --git a/cloisim_ros_bridge_zmq/package.xml b/cloisim_ros_bridge_zmq/package.xml index a37b56c4..522f82fd 100644 --- a/cloisim_ros_bridge_zmq/package.xml +++ b/cloisim_ros_bridge_zmq/package.xml @@ -5,8 +5,8 @@ 4.0.0 bridge for cloisim(simulator) connection through ZMQ Hyunseok Yang - Hyunseok Yang MIT + Hyunseok Yang ament_cmake diff --git a/cloisim_ros_bringup/package.xml b/cloisim_ros_bringup/package.xml index 92bc4219..8b89dc8a 100644 --- a/cloisim_ros_bringup/package.xml +++ b/cloisim_ros_bringup/package.xml @@ -4,15 +4,13 @@ cloisim_ros_bringup 4.0.0 Bringup scripts and configurations for cloisim_ros - Hyunseok Yang Sungkyu Kang + MIT Sungkyu Kang Hyunseok Yang - MIT - ament_cmake launch_ros diff --git a/cloisim_ros_bringup_param/package.xml b/cloisim_ros_bringup_param/package.xml index d399baec..b92bde71 100644 --- a/cloisim_ros_bringup_param/package.xml +++ b/cloisim_ros_bringup_param/package.xml @@ -4,11 +4,10 @@ cloisim_ros_bringup_param 4.0.0 Bringup scripts and configurations for cloisim_ros - Hyunseok Yang + MIT Hyunseok Yang - MIT ament_cmake diff --git a/cloisim_ros_camera/package.xml b/cloisim_ros_camera/package.xml index a191aca2..b5f14d79 100644 --- a/cloisim_ros_camera/package.xml +++ b/cloisim_ros_camera/package.xml @@ -5,10 +5,11 @@ 4.0.0 Virtual camera/depth camera/segmentation camera for CLOiSim Hyunseok Yang - Sungkyu Kang - Sungkyu Kang MIT + Sungkyu Kang + Jaemin Lee + ament_cmake cloisim_ros_bringup_param diff --git a/cloisim_ros_elevator_system/package.xml b/cloisim_ros_elevator_system/package.xml index 2ac977a3..a68c8164 100644 --- a/cloisim_ros_elevator_system/package.xml +++ b/cloisim_ros_elevator_system/package.xml @@ -4,10 +4,8 @@ cloisim_ros_elevator_system 4.0.0 elevator system for simulation - Sungkyu Kang Hyunseok Yang - MIT ament_cmake diff --git a/cloisim_ros_gps/package.xml b/cloisim_ros_gps/package.xml index 611e81e0..b528f129 100644 --- a/cloisim_ros_gps/package.xml +++ b/cloisim_ros_gps/package.xml @@ -5,8 +5,8 @@ 4.0.0 virtual gps for simulation Hyunseok Yang - Hyunseok Yang MIT + Hyunseok Yang ament_cmake diff --git a/cloisim_ros_ground_truth/package.xml b/cloisim_ros_ground_truth/package.xml index 4e631821..d69b8a5e 100644 --- a/cloisim_ros_ground_truth/package.xml +++ b/cloisim_ros_ground_truth/package.xml @@ -5,8 +5,8 @@ 4.0.0 world plugin to retrieve ground truth Hyunseok Yang - Hyunseok Yang MIT + Hyunseok Yang ament_cmake diff --git a/cloisim_ros_imu/package.xml b/cloisim_ros_imu/package.xml index e6694870..98303025 100644 --- a/cloisim_ros_imu/package.xml +++ b/cloisim_ros_imu/package.xml @@ -5,8 +5,8 @@ 4.0.0 virtual imu for simulation Hyunseok Yang - Hyunseok Yang MIT + Hyunseok Yang ament_cmake diff --git a/cloisim_ros_joint_control/package.xml b/cloisim_ros_joint_control/package.xml index 9c8473e3..b50cfc81 100644 --- a/cloisim_ros_joint_control/package.xml +++ b/cloisim_ros_joint_control/package.xml @@ -5,8 +5,8 @@ 4.0.0 joint_control package for simulator Hyunseok Yang - Hyunseok Yang MIT + Hyunseok Yang ament_cmake diff --git a/cloisim_ros_lidar/package.xml b/cloisim_ros_lidar/package.xml index f5821e66..681d37e3 100644 --- a/cloisim_ros_lidar/package.xml +++ b/cloisim_ros_lidar/package.xml @@ -5,8 +5,8 @@ 4.0.0 virtual lidar for simulation Hyunseok Yang - Hyunseok Yang MIT + Hyunseok Yang ament_cmake diff --git a/cloisim_ros_micom/package.xml b/cloisim_ros_micom/package.xml index e563f870..48b0c768 100644 --- a/cloisim_ros_micom/package.xml +++ b/cloisim_ros_micom/package.xml @@ -5,8 +5,8 @@ 4.0.0 micom package for simulator Hyunseok Yang - Hyunseok Yang MIT + Hyunseok Yang ament_cmake diff --git a/cloisim_ros_msgs/package.xml b/cloisim_ros_msgs/package.xml index e848702a..948cd359 100644 --- a/cloisim_ros_msgs/package.xml +++ b/cloisim_ros_msgs/package.xml @@ -5,7 +5,6 @@ 4.0.0 interfaces package for cloisim_ros Hyunseok Yang - MIT ament_cmake diff --git a/cloisim_ros_multicamera/package.xml b/cloisim_ros_multicamera/package.xml index ae80cd29..5e55f2dc 100644 --- a/cloisim_ros_multicamera/package.xml +++ b/cloisim_ros_multicamera/package.xml @@ -6,8 +6,8 @@ virtual multi-camera for simulator Sungkyu Kang Hyunseok Yang - Sungkyu Kang MIT + Sungkyu Kang ament_cmake diff --git a/cloisim_ros_protobuf_msgs/package.xml b/cloisim_ros_protobuf_msgs/package.xml index 8fa67ef7..a87410e3 100644 --- a/cloisim_ros_protobuf_msgs/package.xml +++ b/cloisim_ros_protobuf_msgs/package.xml @@ -5,8 +5,8 @@ 4.0.0 CLOiSim-ROS interafces for communication between simulator and CLOiSim-ROS Hyunseok Yang - Hyunseok Yang MIT + Hyunseok Yang ament_cmake diff --git a/cloisim_ros_realsense/package.xml b/cloisim_ros_realsense/package.xml index de4a255f..a6a20c69 100644 --- a/cloisim_ros_realsense/package.xml +++ b/cloisim_ros_realsense/package.xml @@ -6,8 +6,8 @@ virtual realsense for simulator Sungkyu Kang Hyunseok Yang - Sungkyu Kang MIT + Sungkyu Kang ament_cmake diff --git a/cloisim_ros_sonar/package.xml b/cloisim_ros_sonar/package.xml index 52778233..c6b64bdb 100644 --- a/cloisim_ros_sonar/package.xml +++ b/cloisim_ros_sonar/package.xml @@ -5,8 +5,8 @@ 4.0.0 virtual sonar for simulation Hyunseok Yang - Hyunseok Yang MIT + Hyunseok Yang ament_cmake diff --git a/cloisim_ros_websocket_service/package.xml b/cloisim_ros_websocket_service/package.xml index efc08942..a66266d8 100644 --- a/cloisim_ros_websocket_service/package.xml +++ b/cloisim_ros_websocket_service/package.xml @@ -5,8 +5,8 @@ 4.0.0 websocket service for cloisim(simulator) connection port control Hyunseok Yang - Hyunseok Yang MIT + Hyunseok Yang ament_cmake diff --git a/cloisim_ros_world/package.xml b/cloisim_ros_world/package.xml index f7c8bbf2..c9de6554 100644 --- a/cloisim_ros_world/package.xml +++ b/cloisim_ros_world/package.xml @@ -5,8 +5,8 @@ 4.0.0 Utilities to interface with Unity through ROS. Hyunseok Yang - Hyunseok Yang MIT + Hyunseok Yang ament_cmake From 4e462f842e8bda5e76b56745a4af4d6dd4dd4a99 Mon Sep 17 00:00:00 2001 From: "Hyunseok Yang (YG)" Date: Mon, 24 Jun 2024 15:45:40 +0900 Subject: [PATCH 12/15] Move RCLCPP LOG MACRO from bringup to base --- cloisim_ros_base/include/cloisim_ros_base/base.hpp | 7 +++++++ cloisim_ros_bringup/src/main.cpp | 7 ------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cloisim_ros_base/include/cloisim_ros_base/base.hpp b/cloisim_ros_base/include/cloisim_ros_base/base.hpp index bdf553e1..586816c6 100644 --- a/cloisim_ros_base/include/cloisim_ros_base/base.hpp +++ b/cloisim_ros_base/include/cloisim_ros_base/base.hpp @@ -29,6 +29,13 @@ #include #include +#define INFO_ONCE RCLCPP_INFO_STREAM_ONCE +#define WARN_ONCE RCLCPP_WARN_STREAM_ONCE +#define ERR_ONCE RCLCPP_ERROR_STREAM_ONCE +#define INFO RCLCPP_INFO_STREAM +#define WARN RCLCPP_WARN_STREAM +#define ERR RCLCPP_ERROR_STREAM + namespace cloisim_ros { diff --git a/cloisim_ros_bringup/src/main.cpp b/cloisim_ros_bringup/src/main.cpp index 8886e4ef..7edec10e 100644 --- a/cloisim_ros_bringup/src/main.cpp +++ b/cloisim_ros_bringup/src/main.cpp @@ -19,13 +19,6 @@ using namespace std; -#define INFO_ONCE RCLCPP_INFO_STREAM_ONCE -#define WARN_ONCE RCLCPP_WARN_STREAM_ONCE -#define ERR_ONCE RCLCPP_ERROR_STREAM_ONCE -#define INFO RCLCPP_INFO_STREAM -#define WARN RCLCPP_WARN_STREAM -#define ERR RCLCPP_ERROR_STREAM - extern map, tuple>> g_node_map_list; void make_bringup_list(const Json::Value result_map, const string target_model, const string target_parts_type, const string target_parts_name, const bool is_single_mode); From 0c2e9d72a61f6177bfd7770442fd69722e93fc54 Mon Sep 17 00:00:00 2001 From: "Hyunseok Yang (YG)" Date: Mon, 24 Jun 2024 18:34:31 +0900 Subject: [PATCH 13/15] Update README.md --- README.md | 5 ----- cloisim_ros_bringup/README.md | 13 +++++-------- cloisim_ros_camera/README.md | 7 +------ cloisim_ros_elevator_system/README.md | 5 ----- cloisim_ros_ground_truth/README.md | 9 ++------- 5 files changed, 8 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 5f462c5e..0e074528 100644 --- a/README.md +++ b/README.md @@ -64,11 +64,6 @@ Apply namespaceas each robot as a multi robot mode. ```shell ros2 launch cloisim_ros_bringup bringup_launch.py -``` - -or - -```shell ros2 launch cloisim_ros_bringup bringup_launch.py single_mode:=False ``` diff --git a/cloisim_ros_bringup/README.md b/cloisim_ros_bringup/README.md index 7ce6619a..895b4f37 100644 --- a/cloisim_ros_bringup/README.md +++ b/cloisim_ros_bringup/README.md @@ -21,12 +21,14 @@ ros2 run cloisim_ros_bringup bringup Apply namespaceas each robot as a multi robot mode +#### ros2 run + ```shell ros2 run cloisim_ros_bringup bringup --ros-args -p single_mode:=False ros2 run cloisim_ros_bringup bringup ``` -or +#### ros2 launch ```shell ros2 launch cloisim_ros_bringup bringup.launch.py @@ -52,17 +54,12 @@ will NOT apply namespace for robot and the number of robot must BE single in wor ```shell ros2 run cloisim_ros_bringup bringup --ros-args -p single_mode:=True -``` - -or - -```shell ros2 launch cloisim_ros_bringup bringup.launch.py single_mode:=True ``` -or +#### Specific target model without namespace -specific target model without namespace +Specify target model from simulation ```shell ros2 launch cloisim_ros_bringup bringup.launch.py single_mode:=True target_model:=cloi0 diff --git a/cloisim_ros_camera/README.md b/cloisim_ros_camera/README.md index ada5a6f9..184e8a72 100644 --- a/cloisim_ros_camera/README.md +++ b/cloisim_ros_camera/README.md @@ -33,15 +33,10 @@ This filename in `` element enables to connect cloisim_ros_camera. ros2 run cloisim_ros_camera camera ``` -or +#### Single mode for camera ```shell ros2 run cloisim_ros_camera camera --ros-args -p single_mode:=True -p target_model:=cloi1 -p target_parts_name:=camera -``` - -or - -```shell ros2 run cloisim_ros_camera camera --ros-args -p target_model:=cloi1 -p target_parts_name:=camera ``` diff --git a/cloisim_ros_elevator_system/README.md b/cloisim_ros_elevator_system/README.md index 38771713..96823bfa 100644 --- a/cloisim_ros_elevator_system/README.md +++ b/cloisim_ros_elevator_system/README.md @@ -8,11 +8,6 @@ Please, refer to [here](https://github.com/lge-ros2/cloi_common_interfaces/tree/ ```shell ros2 run cloisim_ros_elevator_system standalone -``` - -or - -```shell ros2 run cloisim_ros_elevator_system standalone --ros-args -p target_model:=SeochoTower -p target_parts_name:=elevator_system ``` diff --git a/cloisim_ros_ground_truth/README.md b/cloisim_ros_ground_truth/README.md index c234b7ab..eb24c107 100644 --- a/cloisim_ros_ground_truth/README.md +++ b/cloisim_ros_ground_truth/README.md @@ -2,15 +2,10 @@ ```shell ros2 run cloisim_ros_ground_truth standalone -``` - -or - -```shell ros2 run cloisim_ros_ground_truth standalone --ros-args -p target_parts_name:=tracking ``` -# How to monitor the message of topic. +## How to monitor the message of topic. ```shell ros2 topic echo /ground_truth @@ -18,7 +13,7 @@ ros2 topic echo /ground_truth You need to configure the ground truth list from [here](https://github.com/lge-ros2/sample_resources/blob/415a700c5280286a28690cf032cd0f4aa826a150/worlds/lg_seocho_with_actors.world#L301). -# Examples of outputs +## Examples of outputs ```shell --- From e613bc422b595e8eb810a63538e648f0c9cde9de Mon Sep 17 00:00:00 2001 From: "Hyunseok Yang (YG)" Date: Mon, 24 Jun 2024 18:45:15 +0900 Subject: [PATCH 14/15] Make it possible to switch TF/TF_static publishing for micom from cloisim_ros_bringup --- cloisim_ros_base/src/base.cpp | 3 +- cloisim_ros_bringup/README.md | 9 +++ cloisim_ros_bringup/launch/bringup_launch.py | 63 ++++++++------- cloisim_ros_bringup/launch/cloisim_launch.py | 15 ++-- cloisim_ros_bringup/src/bringup.cpp | 54 +++++++------ cloisim_ros_bringup/src/main.cpp | 2 +- .../bringup_param.hpp | 15 ++-- .../src/bringup_param.cpp | 76 ++++++++++++++++--- cloisim_ros_micom/src/main.cpp | 5 ++ 9 files changed, 163 insertions(+), 79 deletions(-) diff --git a/cloisim_ros_base/src/base.cpp b/cloisim_ros_base/src/base.cpp index 96e63462..34c199ca 100644 --- a/cloisim_ros_base/src/base.cpp +++ b/cloisim_ros_base/src/base.cpp @@ -52,6 +52,7 @@ Base::Base(const string node_name, const string namespace_, const rclcpp::NodeOp , m_node_handle(shared_ptr(this, [](auto) {})) , m_static_tf_broadcaster(nullptr) , m_tf_broadcaster(nullptr) + , enable_tf_publish_(true) { get_parameter_or("enable_tf", enable_tf_publish_, bool(true)); } @@ -75,7 +76,7 @@ void Base::Start(const bool enable_tf_publish) Initialize(); - DBG_SIM_MSG("enable_tf(%d)", enable_tf_publish_); + DBG_SIM_MSG("node(%s) enable_tf(%d)", get_name(), enable_tf_publish_); auto callback_static_tf_pub = [this]() -> void { diff --git a/cloisim_ros_bringup/README.md b/cloisim_ros_bringup/README.md index 895b4f37..07b818ef 100644 --- a/cloisim_ros_bringup/README.md +++ b/cloisim_ros_bringup/README.md @@ -64,3 +64,12 @@ Specify target model from simulation ```shell ros2 launch cloisim_ros_bringup bringup.launch.py single_mode:=True target_model:=cloi0 ``` + +### Enable or disable TF/TF_Static publishing + +Currently only support "micom" type in cloisim_ros_bringup. + +```shell +ros2 launch cloisim_ros_bringup bringup.launch.py micom.enable_tf:=False +ros2 run cloisim_ros_bringup bringup --ros-args -p single_mode:=True -p micom.enable_tf:=False +``` diff --git a/cloisim_ros_bringup/launch/bringup_launch.py b/cloisim_ros_bringup/launch/bringup_launch.py index 977d1336..d31a5e76 100644 --- a/cloisim_ros_bringup/launch/bringup_launch.py +++ b/cloisim_ros_bringup/launch/bringup_launch.py @@ -1,16 +1,14 @@ -# -# LGE Advanced Robotics Laboratory -# Copyright (c) 2020 LG Electronics Inc., LTD., Seoul, Korea -# All Rights are Reserved. -# -# SPDX-License-Identifier: MIT -# - -import os +""" +LGE Advanced Robotics Laboratory +Copyright (c) 2020 LG Electronics Inc., LTD., Seoul, Korea +All Rights are Reserved. + +SPDX-License-Identifier: MIT +""" + import launch.actions from launch_ros.actions import Node -from launch.actions import DeclareLaunchArgument -from launch.actions import SetEnvironmentVariable +from launch.actions import DeclareLaunchArgument, SetEnvironmentVariable from launch.substitutions import LaunchConfiguration from launch_ros.parameter_descriptions import ParameterValue @@ -21,27 +19,13 @@ def generate_launch_description(): _target_model = LaunchConfiguration('target_model') _target_parts_type = LaunchConfiguration('target_parts_type') _target_parts_name = LaunchConfiguration('target_parts_name') + _enable_tf_micom = LaunchConfiguration('micom.enable_tf') _scan = LaunchConfiguration('scan') _cmd_vel = LaunchConfiguration('cmd_vel') _odom = LaunchConfiguration('odom') _imu = LaunchConfiguration('imu') _navsatfix = LaunchConfiguration('navsatfix') - cloisim_ros_cmd = Node( - package="cloisim_ros_bringup", - executable="bringup", - output='screen', - remappings=[('scan', _scan), - ('cmd_vel', _cmd_vel), - ('odom', _odom), - ('imu', _imu), - ('navsatfix', _navsatfix)], - parameters=[{'single_mode': _single_mode, - 'target_model': ParameterValue(_target_model, value_type=str), - 'target_parts_type': ParameterValue(_target_parts_type, value_type=str), - 'target_parts_name': ParameterValue(_target_parts_name, value_type=str), - }]) - declare_launch_argument_sm = DeclareLaunchArgument( 'single_mode', default_value='False', @@ -62,6 +46,11 @@ def generate_launch_description(): default_value='', description='specify the name of target parts you want') + declare_launch_argument_etm = DeclareLaunchArgument( + 'micom.enable_tf', + default_value='True', + description='whether to use tf/tf_static for Micom') + declare_launch_argument_sc = DeclareLaunchArgument( 'scan', default_value='scan', @@ -71,17 +60,17 @@ def generate_launch_description(): 'cmd_vel', default_value='cmd_vel', description='specify cmd_vel topic you want') - + declare_launch_argument_odom = DeclareLaunchArgument( 'odom', default_value='odom', description='specify odom topic you want') - + declare_launch_argument_imu = DeclareLaunchArgument( 'imu', default_value='imu', description='specify imu/data topic you want') - + declare_launch_argument_navsatfix = DeclareLaunchArgument( 'navsatfix', default_value='navsatfix', @@ -93,6 +82,21 @@ def generate_launch_description(): stdout_log_buf_stream_envvar = SetEnvironmentVariable( 'RCUTILS_LOGGING_BUFFERED_STREAM', '1') + cloisim_ros_cmd = Node( + package="cloisim_ros_bringup", + executable="bringup", + output='screen', + remappings=[('scan', _scan), + ('cmd_vel', _cmd_vel), + ('odom', _odom), + ('imu', _imu), + ('navsatfix', _navsatfix)], + parameters=[{'single_mode': _single_mode, + 'target_model': ParameterValue(_target_model, value_type=str), + 'target_parts_type': ParameterValue(_target_parts_type, value_type=str), + 'target_parts_name': ParameterValue(_target_parts_name, value_type=str), + 'micom.enable_tf': _enable_tf_micom}]) + # Create the launch description and populate ld = launch.LaunchDescription() @@ -108,6 +112,7 @@ def generate_launch_description(): ld.add_action(declare_launch_argument_odom) ld.add_action(declare_launch_argument_imu) ld.add_action(declare_launch_argument_navsatfix) + ld.add_action(declare_launch_argument_etm) ld.add_action(cloisim_ros_cmd) return ld diff --git a/cloisim_ros_bringup/launch/cloisim_launch.py b/cloisim_ros_bringup/launch/cloisim_launch.py index d75226c9..d9dbdc48 100644 --- a/cloisim_ros_bringup/launch/cloisim_launch.py +++ b/cloisim_ros_bringup/launch/cloisim_launch.py @@ -1,10 +1,11 @@ -# -# LGE Advanced Robotics Laboratory -# Copyright (c) 2020 LG Electronics Inc., LTD., Seoul, Korea -# All Rights are Reserved. -# -# SPDX-License-Identifier: MIT -# +""" +LGE Advanced Robotics Laboratory +Copyright (c) 2020 LG Electronics Inc., LTD., Seoul, Korea +All Rights are Reserved. + +SPDX-License-Identifier: MIT +""" + from launch import LaunchDescription from launch.actions import DeclareLaunchArgument from launch.actions import ExecuteProcess diff --git a/cloisim_ros_bringup/src/bringup.cpp b/cloisim_ros_bringup/src/bringup.cpp index 7fb1f54a..28021cc6 100644 --- a/cloisim_ros_bringup/src/bringup.cpp +++ b/cloisim_ros_bringup/src/bringup.cpp @@ -35,92 +35,96 @@ using namespace std; map, tuple>> g_node_map_list; // static vector> loaded_key_list; -static bool enable_single_mode = false; +static bool g_enable_single_mode = false; static shared_ptr make_device_node( rclcpp::NodeOptions& node_options, const string& node_type, const string& model_name, - const string& node_name) + const string& node_name, + const Json::Value& node_param) { shared_ptr node = nullptr; - if (enable_single_mode) + if (g_enable_single_mode) node_options.append_parameter_override("single_mode.robotname", model_name); if (!node_type.compare("MICOM")) { - if (enable_single_mode) + if (!node_param["enable_tf"].isNull()) + node_options.append_parameter_override("enable_tf", node_param["enable_tf"].asBool()); + + if (g_enable_single_mode) node = std::make_shared(node_options, node_name); else node = std::make_shared(node_options, node_name, model_name); } else if (!node_type.compare("JOINTCONTROL")) { - if (enable_single_mode) + if (g_enable_single_mode) node = std::make_shared(node_options, node_name); else node = std::make_shared(node_options, node_name, model_name); } else if (!node_type.compare("LIDAR") || !node_type.compare("LASER")) { - if (enable_single_mode) + if (g_enable_single_mode) node = std::make_shared(node_options, node_name); else node = std::make_shared(node_options, node_name, model_name); } else if (!node_type.compare("CAMERA")) { - if (enable_single_mode) + if (g_enable_single_mode) node = std::make_shared(node_options, node_name); else node = std::make_shared(node_options, node_name, model_name); } else if (!node_type.compare("DEPTHCAMERA")) { - if (enable_single_mode) + if (g_enable_single_mode) node = std::make_shared(node_options, node_name); else node = std::make_shared(node_options, node_name, model_name); } else if (!node_type.compare("MULTICAMERA")) { - if (enable_single_mode) + if (g_enable_single_mode) node = std::make_shared(node_options, node_name); else node = std::make_shared(node_options, node_name, model_name); } else if (!node_type.compare("REALSENSE")) { - if (enable_single_mode) + if (g_enable_single_mode) node = std::make_shared(node_options, node_name); else node = std::make_shared(node_options, node_name, model_name); } else if (!node_type.compare("SEGMENTCAMERA")) { - if (enable_single_mode) + if (g_enable_single_mode) node = std::make_shared(node_options, node_name); else node = std::make_shared(node_options, node_name, model_name); } else if (!node_type.compare("GPS")) { - if (enable_single_mode) + if (g_enable_single_mode) node = std::make_shared(node_options, node_name); else node = std::make_shared(node_options, node_name, model_name); } else if (!node_type.compare("IMU")) { - if (enable_single_mode) + if (g_enable_single_mode) node = std::make_shared(node_options, node_name); else node = std::make_shared(node_options, node_name, model_name); } else if (!node_type.compare("SONAR")) { - if (enable_single_mode) + if (g_enable_single_mode) node = std::make_shared(node_options, node_name); else node = std::make_shared(node_options, node_name, model_name); @@ -155,7 +159,7 @@ static shared_ptr make_world_node( } static void parse_target_parts_by_name( - const Json::Value item, + const Json::Value& item, const string node_type, const string model_name, const string node_name) @@ -163,15 +167,13 @@ static void parse_target_parts_by_name( shared_ptr node = nullptr; rclcpp::NodeOptions node_options; - node_options.append_parameter_override("single_mode", static_cast(enable_single_mode)); + node_options.append_parameter_override("single_mode", static_cast(g_enable_single_mode)); cloisim_ros::BringUpParam::StoreBridgeInfosAsParameters(item, node_options); - const auto node_info = "Target Model/Type/Parts: " + model_name + "/" + node_type + "/" + node_name; - const auto key = tie(model_name, node_type, node_name); - loaded_key_list.push_back(key); + // const auto node_info = "Target Model/Type/Parts: " + model_name + "/" + node_type + "/" + node_name; // cout << "node info: " << node_info << endl; if (g_node_map_list.find(key) != g_node_map_list.end()) { @@ -180,11 +182,13 @@ static void parse_target_parts_by_name( } if (cloisim_ros::BringUpParam::IsRobotSpecificType(node_type)) - node = make_device_node(node_options, node_type, model_name, node_name); + node = make_device_node(node_options, node_type, model_name, node_name, item); + else if (cloisim_ros::BringUpParam::IsWorldSpecificType(node_type)) node = make_world_node(node_options, node_type, model_name, node_name); + else - cout << node_type << " is not supported." << endl; + cout << node_type << " is NOT supported." << endl; if (node != nullptr) { @@ -194,7 +198,7 @@ static void parse_target_parts_by_name( } static void parse_target_parts_by_type( - const Json::Value node_list, + const Json::Value& node_list, const string node_type, const string model_name, const string targetPartsName) @@ -217,7 +221,7 @@ static void parse_target_parts_by_type( } static void parse_target_model( - const Json::Value item_list, + const Json::Value& item_list, const string item_name, const string targetPartsType, const string targetPartsName) @@ -237,13 +241,13 @@ static void parse_target_model( } void make_bringup_list( - const Json::Value result_map, + const Json::Value& result_map, const string target_model, const string target_parts_type, const string target_parts_name, const bool is_single_mode) { - enable_single_mode = is_single_mode; + g_enable_single_mode = is_single_mode; loaded_key_list.clear(); for (auto it = result_map.begin(); it != result_map.end(); it++) diff --git a/cloisim_ros_bringup/src/main.cpp b/cloisim_ros_bringup/src/main.cpp index 7edec10e..7929854a 100644 --- a/cloisim_ros_bringup/src/main.cpp +++ b/cloisim_ros_bringup/src/main.cpp @@ -21,7 +21,7 @@ using namespace std; extern map, tuple>> g_node_map_list; -void make_bringup_list(const Json::Value result_map, const string target_model, const string target_parts_type, const string target_parts_name, const bool is_single_mode); +void make_bringup_list(const Json::Value& result_map, const string target_model, const string target_parts_type, const string target_parts_name, const bool is_single_mode); void remove_all_bringup_nodes(rclcpp::Executor& executor, const rclcpp::Logger& logger) { diff --git a/cloisim_ros_bringup_param/include/cloisim_ros_bringup_param/bringup_param.hpp b/cloisim_ros_bringup_param/include/cloisim_ros_bringup_param/bringup_param.hpp index ea75bd3d..738a03e0 100644 --- a/cloisim_ros_bringup_param/include/cloisim_ros_bringup_param/bringup_param.hpp +++ b/cloisim_ros_bringup_param/include/cloisim_ros_bringup_param/bringup_param.hpp @@ -1,6 +1,6 @@ /** * @file bringup_param.hpp - * @date 2021-01-21 + * @date 2024-06-24 * @author Hyunseok Yang * @brief * load parameters for bringup @@ -46,23 +46,26 @@ class BringUpParam : public rclcpp::Node void TargetPartsName(const string value) { target_parts_name = value; } Json::Value GetBringUpList(const bool filterByParameters = false); - - void StoreFilteredInfoAsParameters(const Json::Value item, rclcpp::NodeOptions &node_options); - - public: Json::Value RequestBringUpList(); static bool IsRobotSpecificType(const string node_type); - static bool IsWorldSpecificType(const string node_type); + void StoreFilteredInfoAsParameters(const Json::Value item, rclcpp::NodeOptions &node_options); static void StoreBridgeInfosAsParameters(const Json::Value item, rclcpp::NodeOptions &node_options); + bool HasEnableTFforMicom() { return has_parameter("micom.enable_tf"); } + bool EnableTFforMicom() { return enable_tf_micom_; } + +private: + void SetIndividualParameters(Json::Value& result); + private: bool is_single_mode; string target_model; string target_parts_type; string target_parts_name; + bool enable_tf_micom_; WebSocketService *ws_service_ptr_; diff --git a/cloisim_ros_bringup_param/src/bringup_param.cpp b/cloisim_ros_bringup_param/src/bringup_param.cpp index af407646..50f28ceb 100644 --- a/cloisim_ros_bringup_param/src/bringup_param.cpp +++ b/cloisim_ros_bringup_param/src/bringup_param.cpp @@ -1,6 +1,6 @@ /** - * @file main.cpp - * @date 2021-01-16 + * @file bringup_param.cpp + * @date 2024-06-24 * @author Hyunseok Yang * @brief * @remark @@ -43,6 +43,7 @@ BringUpParam::BringUpParam(const string basename) , target_model("") , target_parts_type("") , target_parts_name("") + , enable_tf_micom_(true) , ws_service_ptr_(nullptr) { get_parameter("single_mode", is_single_mode); @@ -50,9 +51,18 @@ BringUpParam::BringUpParam(const string basename) get_parameter("target_parts_type", target_parts_type); get_parameter("target_parts_name", target_parts_name); + if (HasEnableTFforMicom()) + { + get_parameter("micom.enable_tf", enable_tf_micom_); + } + RCLCPP_INFO_ONCE(this->get_logger(), "Params > single_mode(%d) target_model(%s) target_parts_type(%s) target_parts_name(%s)", is_single_mode, target_model.c_str(), target_parts_type.c_str(), target_parts_name.c_str()); + + RCLCPP_INFO_ONCE(this->get_logger(), + "enable_tf > micom(%d)", + (int)enable_tf_micom_); } BringUpParam::~BringUpParam() @@ -110,6 +120,7 @@ Json::Value BringUpParam::RequestBringUpList() if (root["result"].size() > 0) { result = root["result"]; + SetIndividualParameters(result); // cout << "There is node map list: " << result.size() << endl; // cout << result << endl; break; @@ -125,6 +136,51 @@ Json::Value BringUpParam::RequestBringUpList() return result; } +void BringUpParam::SetIndividualParameters(Json::Value& result) +{ + if (result.isNull()) + return; + + // cout << __FUNCTION__<< endl; + // cout << result << endl; + for (auto it = result.begin(); it != result.end(); it++) + { + const auto node_namespace = it.key().asString(); + auto item_list = (*it); + // cout << node_namespace << endl; + + for (auto it2 = item_list.begin(); it2 != item_list.end(); ++it2) + { + const auto node_type = it2.key().asString(); + auto node_list = (*it2); + + // cout << "\t" << node_type << ", " << endl; + if (node_type.compare("MICOM") == 0) + { + for (auto it3 = node_list.begin(); it3 != node_list.end(); ++it3) + { + const auto node_name = it3.key().asString(); + auto node_param_list = (*it3); + + if (HasEnableTFforMicom()) + { + node_param_list["enable_tf"] = EnableTFforMicom(); + } + + // cout << "\t\t node_name: " << node_name << endl; + // for (auto it4 = node_param_list.begin(); it4 != node_param_list.end(); ++it4) + // cout << "\t\t\t" << it4.key().asString() << ": " << (*it4).asString() << endl; + + node_list[node_name] = node_param_list; + } + } + item_list[node_type] = node_list; + } + result[node_namespace] = item_list; + } + // cout << result << endl; +} + Json::Value BringUpParam::GetFilteredListByParameters(const Json::Value result) { Json::Value root; @@ -167,15 +223,15 @@ void BringUpParam::StoreBridgeInfosAsParameters( const Json::Value item, rclcpp::NodeOptions &node_options) { - if (!item.isNull()) + if (item.isNull()) + return; + + for (auto it = item.begin(); it != item.end(); ++it) { - for (auto it = item.begin(); it != item.end(); ++it) - { - const auto bridge_key = it.key().asString(); - const auto bridge_port = (*it).asUInt(); - node_options.append_parameter_override("bridge." + bridge_key, uint16_t(bridge_port)); - // cout << "bridge." << bridge_key << " = " << bridge_port << endl; - } + const auto bridge_key = it.key().asString(); + const auto bridge_port = (*it).asUInt(); + node_options.append_parameter_override("bridge." + bridge_key, uint16_t(bridge_port)); + // cout << "bridge." << bridge_key << " = " << bridge_port << endl; } } diff --git a/cloisim_ros_micom/src/main.cpp b/cloisim_ros_micom/src/main.cpp index f5bb5c92..6cac08e2 100644 --- a/cloisim_ros_micom/src/main.cpp +++ b/cloisim_ros_micom/src/main.cpp @@ -37,6 +37,11 @@ int main(int argc, char** argv) const auto model_name = bringup_param_node->TargetModel(); const auto node_name = bringup_param_node->TargetPartsName(); + if (bringup_param_node->HasEnableTFforMicom()) + { + node_options.append_parameter_override("enable_tf", bringup_param_node->EnableTFforMicom()); + } + if (is_single_mode) node = std::make_shared(node_options, node_name); else From c43d6cd6a0bcea4a5383869a45cfe7b5fe199625 Mon Sep 17 00:00:00 2001 From: "Hyunseok Yang (YG)" Date: Mon, 24 Jun 2024 18:50:30 +0900 Subject: [PATCH 15/15] Update version info in package.xml --- cloisim_ros_actor/package.xml | 2 +- cloisim_ros_base/package.xml | 2 +- cloisim_ros_bridge_zmq/package.xml | 2 +- cloisim_ros_bridge_zmq/src/bridge.cpp | 3 +++ cloisim_ros_bringup/package.xml | 2 +- cloisim_ros_bringup_param/package.xml | 2 +- cloisim_ros_camera/package.xml | 2 +- cloisim_ros_elevator_system/package.xml | 2 +- cloisim_ros_gps/package.xml | 2 +- cloisim_ros_ground_truth/package.xml | 2 +- cloisim_ros_imu/package.xml | 2 +- cloisim_ros_joint_control/package.xml | 2 +- cloisim_ros_lidar/package.xml | 2 +- cloisim_ros_micom/package.xml | 2 +- cloisim_ros_msgs/package.xml | 2 +- cloisim_ros_multicamera/package.xml | 2 +- cloisim_ros_protobuf_msgs/package.xml | 2 +- cloisim_ros_realsense/package.xml | 2 +- cloisim_ros_sonar/package.xml | 2 +- cloisim_ros_websocket_service/package.xml | 2 +- cloisim_ros_world/package.xml | 2 +- 21 files changed, 23 insertions(+), 20 deletions(-) diff --git a/cloisim_ros_actor/package.xml b/cloisim_ros_actor/package.xml index 35c94c41..8bd5e3b5 100644 --- a/cloisim_ros_actor/package.xml +++ b/cloisim_ros_actor/package.xml @@ -2,7 +2,7 @@ cloisim_ros_actor - 4.0.0 + 4.1.0 node for actor plugin Hyunseok Yang MIT diff --git a/cloisim_ros_base/package.xml b/cloisim_ros_base/package.xml index bce13e66..0a307c12 100644 --- a/cloisim_ros_base/package.xml +++ b/cloisim_ros_base/package.xml @@ -2,7 +2,7 @@ cloisim_ros_base - 4.0.0 + 4.1.0 CLOiSim-ROS base class for other CLOiSim-ROS Hyunseok Yang MIT diff --git a/cloisim_ros_bridge_zmq/package.xml b/cloisim_ros_bridge_zmq/package.xml index 522f82fd..8655a9dd 100644 --- a/cloisim_ros_bridge_zmq/package.xml +++ b/cloisim_ros_bridge_zmq/package.xml @@ -2,7 +2,7 @@ cloisim_ros_bridge_zmq - 4.0.0 + 4.1.0 bridge for cloisim(simulator) connection through ZMQ Hyunseok Yang MIT diff --git a/cloisim_ros_bridge_zmq/src/bridge.cpp b/cloisim_ros_bridge_zmq/src/bridge.cpp index 88c4da3e..dcc86201 100644 --- a/cloisim_ros_bridge_zmq/src/bridge.cpp +++ b/cloisim_ros_bridge_zmq/src/bridge.cpp @@ -50,6 +50,7 @@ Bridge::~Bridge() { if (pCtx_) { + zmq_ctx_shutdown(pCtx_); zmq_ctx_term(pCtx_); pCtx_ = nullptr; } @@ -396,6 +397,8 @@ bool Bridge::CloseSocket(void *&target) return false; } + DBG_SIM_WRN("CLOSE ZMQQ!!!!!!!!!!!!!!!!!!!!!!!!"); + zmq_close(target); target = nullptr; diff --git a/cloisim_ros_bringup/package.xml b/cloisim_ros_bringup/package.xml index 8b89dc8a..9ca7302c 100644 --- a/cloisim_ros_bringup/package.xml +++ b/cloisim_ros_bringup/package.xml @@ -2,7 +2,7 @@ cloisim_ros_bringup - 4.0.0 + 4.1.0 Bringup scripts and configurations for cloisim_ros Hyunseok Yang Sungkyu Kang diff --git a/cloisim_ros_bringup_param/package.xml b/cloisim_ros_bringup_param/package.xml index b92bde71..37eee555 100644 --- a/cloisim_ros_bringup_param/package.xml +++ b/cloisim_ros_bringup_param/package.xml @@ -2,7 +2,7 @@ cloisim_ros_bringup_param - 4.0.0 + 4.1.0 Bringup scripts and configurations for cloisim_ros Hyunseok Yang MIT diff --git a/cloisim_ros_camera/package.xml b/cloisim_ros_camera/package.xml index b5f14d79..7f765ec1 100644 --- a/cloisim_ros_camera/package.xml +++ b/cloisim_ros_camera/package.xml @@ -2,7 +2,7 @@ cloisim_ros_camera - 4.0.0 + 4.1.0 Virtual camera/depth camera/segmentation camera for CLOiSim Hyunseok Yang MIT diff --git a/cloisim_ros_elevator_system/package.xml b/cloisim_ros_elevator_system/package.xml index a68c8164..b714bab6 100644 --- a/cloisim_ros_elevator_system/package.xml +++ b/cloisim_ros_elevator_system/package.xml @@ -2,7 +2,7 @@ cloisim_ros_elevator_system - 4.0.0 + 4.1.0 elevator system for simulation Sungkyu Kang Hyunseok Yang diff --git a/cloisim_ros_gps/package.xml b/cloisim_ros_gps/package.xml index b528f129..b9a492e3 100644 --- a/cloisim_ros_gps/package.xml +++ b/cloisim_ros_gps/package.xml @@ -2,7 +2,7 @@ cloisim_ros_gps - 4.0.0 + 4.1.0 virtual gps for simulation Hyunseok Yang MIT diff --git a/cloisim_ros_ground_truth/package.xml b/cloisim_ros_ground_truth/package.xml index d69b8a5e..aa1620bb 100644 --- a/cloisim_ros_ground_truth/package.xml +++ b/cloisim_ros_ground_truth/package.xml @@ -2,7 +2,7 @@ cloisim_ros_ground_truth - 4.0.0 + 4.1.0 world plugin to retrieve ground truth Hyunseok Yang MIT diff --git a/cloisim_ros_imu/package.xml b/cloisim_ros_imu/package.xml index 98303025..ab95ef5e 100644 --- a/cloisim_ros_imu/package.xml +++ b/cloisim_ros_imu/package.xml @@ -2,7 +2,7 @@ cloisim_ros_imu - 4.0.0 + 4.1.0 virtual imu for simulation Hyunseok Yang MIT diff --git a/cloisim_ros_joint_control/package.xml b/cloisim_ros_joint_control/package.xml index b50cfc81..05032b43 100644 --- a/cloisim_ros_joint_control/package.xml +++ b/cloisim_ros_joint_control/package.xml @@ -2,7 +2,7 @@ cloisim_ros_joint_control - 4.0.0 + 4.1.0 joint_control package for simulator Hyunseok Yang MIT diff --git a/cloisim_ros_lidar/package.xml b/cloisim_ros_lidar/package.xml index 681d37e3..c0f792b5 100644 --- a/cloisim_ros_lidar/package.xml +++ b/cloisim_ros_lidar/package.xml @@ -2,7 +2,7 @@ cloisim_ros_lidar - 4.0.0 + 4.1.0 virtual lidar for simulation Hyunseok Yang MIT diff --git a/cloisim_ros_micom/package.xml b/cloisim_ros_micom/package.xml index 48b0c768..fc5b2e77 100644 --- a/cloisim_ros_micom/package.xml +++ b/cloisim_ros_micom/package.xml @@ -2,7 +2,7 @@ cloisim_ros_micom - 4.0.0 + 4.1.0 micom package for simulator Hyunseok Yang MIT diff --git a/cloisim_ros_msgs/package.xml b/cloisim_ros_msgs/package.xml index 948cd359..b35a550e 100644 --- a/cloisim_ros_msgs/package.xml +++ b/cloisim_ros_msgs/package.xml @@ -2,7 +2,7 @@ cloisim_ros_msgs - 4.0.0 + 4.1.0 interfaces package for cloisim_ros Hyunseok Yang MIT diff --git a/cloisim_ros_multicamera/package.xml b/cloisim_ros_multicamera/package.xml index 5e55f2dc..2df08f17 100644 --- a/cloisim_ros_multicamera/package.xml +++ b/cloisim_ros_multicamera/package.xml @@ -2,7 +2,7 @@ cloisim_ros_multicamera - 4.0.0 + 4.1.0 virtual multi-camera for simulator Sungkyu Kang Hyunseok Yang diff --git a/cloisim_ros_protobuf_msgs/package.xml b/cloisim_ros_protobuf_msgs/package.xml index a87410e3..79f76a04 100644 --- a/cloisim_ros_protobuf_msgs/package.xml +++ b/cloisim_ros_protobuf_msgs/package.xml @@ -2,7 +2,7 @@ cloisim_ros_protobuf_msgs - 4.0.0 + 4.1.0 CLOiSim-ROS interafces for communication between simulator and CLOiSim-ROS Hyunseok Yang MIT diff --git a/cloisim_ros_realsense/package.xml b/cloisim_ros_realsense/package.xml index a6a20c69..aad2c3cb 100644 --- a/cloisim_ros_realsense/package.xml +++ b/cloisim_ros_realsense/package.xml @@ -2,7 +2,7 @@ cloisim_ros_realsense - 4.0.0 + 4.1.0 virtual realsense for simulator Sungkyu Kang Hyunseok Yang diff --git a/cloisim_ros_sonar/package.xml b/cloisim_ros_sonar/package.xml index c6b64bdb..0a541cca 100644 --- a/cloisim_ros_sonar/package.xml +++ b/cloisim_ros_sonar/package.xml @@ -2,7 +2,7 @@ cloisim_ros_sonar - 4.0.0 + 4.1.0 virtual sonar for simulation Hyunseok Yang MIT diff --git a/cloisim_ros_websocket_service/package.xml b/cloisim_ros_websocket_service/package.xml index a66266d8..feea55d0 100644 --- a/cloisim_ros_websocket_service/package.xml +++ b/cloisim_ros_websocket_service/package.xml @@ -2,7 +2,7 @@ cloisim_ros_websocket_service - 4.0.0 + 4.1.0 websocket service for cloisim(simulator) connection port control Hyunseok Yang MIT diff --git a/cloisim_ros_world/package.xml b/cloisim_ros_world/package.xml index c9de6554..d89e7134 100644 --- a/cloisim_ros_world/package.xml +++ b/cloisim_ros_world/package.xml @@ -2,7 +2,7 @@ cloisim_ros_world - 4.0.0 + 4.1.0 Utilities to interface with Unity through ROS. Hyunseok Yang MIT