본문 바로가기

ROS/ROS 기본25

FastDDS https://medium.com/@hitorunajp/monitoring-our-fastdds-application-a3ea49a313f6 Monitoring our FastDDS application Following my last article in which I got to experience FastDDS, I was so eager to try the monitoring tool called FastDDS Monitor. It seemed… medium.com https://fast-dds-monitor.readthedocs.io/en/latest/rst/ros/galactic/galactic.html 1.1. Galactic — Fast DDS Monitor 1.5.0 documentatio.. 2023. 11. 27.
Gazebo 사용법 https://ikaros79.tistory.com/entry/ROS2%EC%9A%A9-Gazebo-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-%EC%9E%91%EC%84%B1%EC%A4%91 2023. 11. 22.
action(cpp) action 사용하는 패키지 생성 ros2 pkg create --dependencies action_tutorials_interfaces rclcpp rclcpp_action rclcpp_components -- action_tutorials_cpp 윈도우에서 작동하려면 visibility_control.h 필요! action_tutorials_cpp/include/action_tutorials_cpp/visibility_control.h #ifndef ACTION_TUTORIALS_CPP__VISIBILITY_CONTROL_H_ #define ACTION_TUTORIALS_CPP__VISIBILITY_CONTROL_H_ #ifdef __cplusplus extern "C" { #endif // Thi.. 2023. 11. 9.
action 패키지 생성 1. 패키지 생성 ros2 pkg create action_tutorials_interfaces 2. 디렉터리 action 생성 action 디렉터리에 Fibonacci.action 파일 생성 int32 order --- int32[] sequence --- int32[] partial_sequence request message / result message / feedback messages request는 클라이언트 -> 서버 result는 서버 -> 클라이언트 feedback은 서버 -> 클라이언트 CMakeLists.txt find_package(rosidl_default_generators REQUIRED) rosidl_generate_interfaces(${PROJECT_NAME} "acti.. 2023. 11. 8.
rosdep rosdep는 패키지를 설치하거나 빌드할 때, dependencies를 식별하고 설치하는 command-line 유틸리티이다. rosdep는 package.xml을 체크하여 적절한 ROS 패키지와 소프트웨어 라이브러리를 설치한다. 패키지의 package.xml에는 , , , , 가 있는데, 이들은 "rosdep_keys"로서 dependencies를 나타낸다. : test에서만 사용하는 dependency : build시에만 사용하는 dependency : 코드가 export하는 헤더에 필요한 dependency : 코드를 실행할때만 필요한 dependency : 여러 목적이 섞여있을 때(build, export, execution time) rosdistro sudo rosdep init rosdep .. 2023. 11. 7.
plugin(C++) plugin이란 ros에서 프로그램 런타임에 특정 패키지를 load하여 사용할 수 있게 해주는 기능이다. 특정 기능을 개발해야 하는데, 기능의 인터페이스는 변하지 않고 내부 기능만 계속 변화할 때 사용하면 편리하다. 내부 기능이 변했을 때 -> 플러그인만 수정하여 새로 빌드하면, 소스코드는 다시 빌드하지 않고 사용이 가능하다! 플러그인을 만들 때는 만들고자 하는 기능의 interface 패키지가 필요하고, 플러그인 패키지 따로 만든다! 1. polygon_base ros2 pkg create --build-type ament_cmake polygon_base --dependencies pluginlib --node-name area_node (node를 다른 패키지에 작성할거면, --node-name 을.. 2023. 11. 5.
ros2 doctor platform, versino. network, environment, running systems등을 검사한다. ros2 doctor ros2 doctor --report 정확하게 나오지 않는 것 같음! 2023. 11. 4.
parameter(launch file) 1. launch 폴더 생성 cpp_parameters_launch.py from launch import LaunchDescription from launch_ros.actions import Node def generate_launch_description(): return LaunchDescription([ Node( package="cpp_parameters", executable="minimal_param_node", name="custom_minimal_param_node", output="screen", emulate_tty=True, parameters=[ {"my_parameter": "earth"} ] ) ]) CMakeLists.txt install( DIRECTORY launch D.. 2023. 11. 3.
parameter(cpp) 패키지 생성 ros2 pkg create --build-type ament_cmake cpp_parameters --dependencies rclcpp CMakeLists.txt add_executable(minimal_param_node src/cpp_parameters_node.cpp) ament_target_dependencies(minimal_param_node rclcpp) install(TARGETS minimal_param_node DESTINATION lib/${PROJECT_NAME} ) 코드 #include #include #include #include using namespace std::chrono_literals; class MinimalParam : public rclcpp::.. 2023. 11. 3.