MW-AHRS-X1 ROS > Module_Forum

본문 바로가기
사이트 내 전체검색

Module_Forum

MW-AHRS-X1 ROS

페이지 정보

profile_image
작성자 아정말다있네
댓글 7건 조회 196회 작성일 25-09-30 15:53

본문

구매한 Sensor: MW-AHRS-X1

사용 환경:ROS-humble, ubuntu 22.04

안녕하십니까 mw-ahrs-x1 IMU를 사용하고 있습니다.

ros-foxy 버전을 지원하는것으로 매뉴얼에 표시되어있는데
ros-humble, ubuntu22.04 버전에서도 지원하는지 알고싶습니다.

만약 humble에서도 사용할수 있다면 방법또한 알고싶습니다. 감사합니다

댓글목록

profile_image

최고관리자님의 댓글

최고관리자 작성일

안녕하세요.

아이디어 로봇입니다.

아래 git에서 사용하시는 PC의 CPU에 맞는 lib 파일을 사용하시면 ubuntu 22.04에서 사용하실 수 있습니다.
https://github.com/ntrexlab/2th_NtrexAHRS_lib_ROS.git

또한 동일한 git에 있는 ros2 패키지에서

launch/stella_ahrs_launch.py 코드의

    driver_node = LifecycleNode(package='stella_ahrs',
                                node_executable='stella_ahrs_node',
                                node_name='stella_ahrs_node',
                                output='screen',
                                emulate_tty=True,
                                node_namespace='/',
                                )

위 부분에서 아래처럼 node_를 제거하시고

    driver_node = LifecycleNode(package='stella_ahrs',
                                executable='stella_ahrs_node',
                                name='stella_ahrs_node',
                                output='screen',
                                emulate_tty=True,
                                namespace='/',
                                )

mw/mw_ahrs.cpp 코드에서

if (res)
    {
      this->declare_parameter("linear_acceleration_stddev");
      this->declare_parameter("angular_velocity_stddev");
      this->declare_parameter("magnetic_field_stddev");
      this->declare_parameter("orientation_stddev");

위 부분에서 아래처럼 기본값을 추가하여 주시면

if (res)
    {
      this->declare_parameter("linear_acceleration_stddev", 0.0);
      this->declare_parameter("angular_velocity_stddev", 0.0);
      this->declare_parameter("magnetic_field_stddev", 0.0);
      this->declare_parameter("orientation_stddev", 0.0);

humble에서도 사용하실 수 있습니다.

profile_image

아정말다있네님의 댓글의 댓글

아정말다있네 작성일

해당 방법으로 시도해보았습니다.
첫 빌드시 해당 오류가 발생하였습니다.

thy@thy-LINUX:~/ros2_ws$ colcon build
[0.395s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/thy/ros2_ws/install/stella_ahrs' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.395s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/thy/ros2_ws/install/robstride02' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.395s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/thy/ros2_ws/install/ebimu_pkg' in the environment variable AMENT_PREFIX_PATH doesn't exist
[0.395s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '/home/thy/ros2_ws/install/stella_ahrs' in the environment variable CMAKE_PREFIX_PATH doesn't exist
Starting >>> ebimu_pkg
Starting >>> robstride02
Starting >>> stella_ahrs
Finished <<< robstride02 [1.90s]                                         
Finished <<< ebimu_pkg [1.95s]
--- stderr: stella_ahrs                           
/home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/serial/list_ports_linux.cc: In function ‘std::vector<std::__cxx11::basic_string<char> > glob(const std::vector<std::__cxx11::basic_string<char> >&)’:
/home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/serial/list_ports_linux.cc:66:40: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  66 |    for(int path_index = 0; path_index < glob_results.gl_pathc; path_index++)
      |                            ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/serial/list_ports_linux.cc:57:9: warning: variable ‘glob_retval’ set but not used [-Wunused-but-set-variable]
  57 |    int glob_retval = glob(patterns[0].c_str(), 0, NULL, &glob_results);
      |        ^~~~~~~~~~~
/home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/serial/list_ports_linux.cc: In function ‘std::string format(const char*, ...)’:
/home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/serial/list_ports_linux.cc:246:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  246 |        else if( return_value >= buffer_size_bytes )
      |                  ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/src/listener.cpp: In function ‘int main(int, char**)’:
/home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/src/listener.cpp:7:18: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
    7 |    char *port = "/dev/ttyUSB0";
      |                  ^~~~~~~~~~~~~~
In file included from /home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/src/listener.cpp:1:
/home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/include/mw/mw_ahrs.hpp: At global scope:
/home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/include/mw/mw_ahrs.hpp:40:14: warning: ‘mag_value’ defined but not used [-Wunused-variable]
  40 |              mag_value[3] = {
      |              ^~~~~~~~~
/home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/include/mw/mw_ahrs.hpp:37:14: warning: ‘deg_value’ defined but not used [-Wunused-variable]
  37 |              deg_value[3] = {
      |              ^~~~~~~~~
/home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/include/mw/mw_ahrs.hpp:34:14: warning: ‘gyr_value’ defined but not used [-Wunused-variable]
  34 |              gyr_value[3] = {
      |              ^~~~~~~~~
/home/thy/ros2_ws/src/PC_AHRS_ROS2/stella_ahrs/include/mw/mw_ahrs.hpp:31:14: warning: ‘acc_value’ defined but not used [-Wunused-variable]
  31 | static float acc_value[3] = {
      |              ^~~~~~~~~
---
Finished <<< stella_ahrs [9.74s]

Summary: 3 packages finished [10.1s]
  1 package had stderr output: stella_ahrs



또한 런치파일 실행시 해당 오류가 발생하였습니다.

thy@thy-LINUX:~/ros2_ws$ ros2 launch stella_ahrs stella_ahrs_launch.py
[INFO] [launch]: All log files can be found below /home/thy/.ros/log/2025-09-30-16-34-51-724393-thy-LINUX-12502
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [stella_ahrs_node-1]: process started with pid [12513]
[stella_ahrs_node-1] [INFO] [1759217696.978528996] [stella_ahrs_node]: product_id  : 5011
[stella_ahrs_node-1]
[stella_ahrs_node-1] [INFO] [1759217696.978752233] [stella_ahrs_node]: software_ver : 500
[stella_ahrs_node-1]
[stella_ahrs_node-1] [INFO] [1759217696.978793537] [stella_ahrs_node]: hardware_ver : 400
[stella_ahrs_node-1]
[stella_ahrs_node-1] [INFO] [1759217696.978805927] [stella_ahrs_node]: function_ver : 15
[stella_ahrs_node-1]
[stella_ahrs_node-1] Set Error : [33], [07] index mismatch
[stella_ahrs_node-1] [INFO] [1759217701.121924247] [stella_ahrs_node]: MW-AHRS ROS Init Fail

profile_image

최고관리자님의 댓글의 댓글

최고관리자 작성일

ttps://github.com/ntrexlab/2th_NtrexAHRS_lib_ROS.git 이 git 리포지토리에 있는 패키지를 사용해 주세요.

profile_image

아정말다있네님의 댓글의 댓글

아정말다있네 작성일

네, 해당 패키지를 사용했는데 해당 오류가 발생합니다.

profile_image

최고관리자님의 댓글의 댓글

최고관리자 작성일

오류가 난 패키지는 PC_AHRS_ROS2 로 확인 됩니다.

2th_NtrexAHRS_lib_ROS 패키지로 부탁드립니다.

profile_image

아정말다있네님의 댓글의 댓글

아정말다있네 작성일

해당 패키지로 진행하였습니다. 똑같은 오류가 발생합니다

profile_image

최고관리자님의 댓글

최고관리자 작성일

2th_NtrexAHRS_lib_ROS에 있던 패키지를 PC_AHRS_ROS2로 이동하여 colcon build 실행하셨다는 말씀이시죠?

[stella_ahrs_node-1] Set Error : [33], [07] index mismatch 에러가 발생하는 경우 아래 공지의 해결 방법으로 해결된 적이 있습니다.
https://idea.synology.me/bbs/board.php?bo_table=forum&wr_id=38

적용하여 확인 부탁 드립니다.

회원로그인

회원가입