AHRS X1 질문이 있습니다..!! > Module_Forum

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

Module_Forum

AHRS X1 질문이 있습니다..!!

페이지 정보

profile_image
작성자 erickim24
댓글 18건 조회 83회 작성일 25-02-04 10:01

본문

구매한 Sensor: MW-AHRS-X1

사용 환경: WSL2 우분투 22.04, ROS2 Humble 버전

개발 언어: C++,

안녕하세요..

IMU 센서에 대해서 질문이 있습니다.

센서 ros2 패키지를 다운로드 받고  colcon build를 하고

ros2 launch을 실행해서 값들을 정상 출력 되었습니다.

이 imu 데이터를 RVIZ2로 시각화를 하려고 하는데, 이 부분을 제공해주시나요..?

혹시 이 부분을 제공이 안된다면 구현을 해야 할 것 같은데 자세하게 설명 해주실 수 있을까요..?

감사합니다.!!

댓글목록

profile_image

최고관리자님의 댓글

최고관리자 작성일

안녕하세요.

아이디어 로봇입니다.

현재 해당 기능은 제공하고 있지 않습니다.

해당 기능을 구현하시고 싶으시다면
먼저 imu의 데이터로 baselink - imu tf를 생성하시고 rviz2의 원점을 baselink로 잡으시면
imu tf가 AHRS의 값에 따라 움직이도록 시각화 하실 수 있으실 것으로 예상됩니다.

3D 모델으로 시각화 하고 싶으신 경우 X1은 아니지만 아래 3D 데이터를 추가하실 수 있습니다.
https://github.com/ntrexlab/3D-Model-Files.git

추가로 아래 저희 STELLA 패키지의 description을 참고하시면 해당 기능을 구현하시는데 도움 되실 것 같습니다.
https://github.com/ntrexlab/STELLA_N1_GAZEBO/tree/humble/stella_description

profile_image

erickim24님의 댓글의 댓글

erickim24 작성일

먼저 imu의 데이터로 baselink - imu tf를 생성한다는 의미가 패키지에서 세팅에 의해서 가능한 것인가요..?

아님 프로그램 코딩을 구현을 해아하는 것인가요.. 초보자라 상세하게 알려주시면 감사하겠습니다.

profile_image

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

최고관리자 작성일

stella_ahrs/mw/mw_ahrs.cpp 코드에서

172, 173번 줄의
tf.header.frame_id를 base_link,
tf.child_frame_id를 imu로 변경하여 주시고
패키지를 새로 빌드하여 실행하시면 baselink - imu tf가 생성될 것으로 예상됩니다.

profile_image

erickim24님의 댓글의 댓글

erickim24 작성일

colcon build를 하니까.. imu, 하고 base_link가 선언되지 않았다고 나오는데.. 이 변수를 어디다 선언을 해줘야 하는 것인가요..?

profile_image

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

최고관리자 작성일

각 이름을 ""안에 넣어주지 않아서 변수로 취급된 것 같습니다.
"base_link", "imu"로 넣어주세요.

profile_image

erickim24님의 댓글의 댓글

erickim24 작성일

변수 선언을 하지 않아서 그런 것 같은데.. 해결책이 있을까요..?

profile_image

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

최고관리자 작성일

""안에 넣어주시면 변수가 아닌 상수로 취급되어 빌드가 가능합니다.

tf_baselink_imu.header.frame_id = "base_link";
tf_baselink_imu.child_frame_id = "imu";

profile_image

erickim24님의 댓글의 댓글

erickim24 작성일

빌드해서 성공을 했습니다.. 혹시 baselink - imu tf가 어디에 생기는 것일까요.? ros2 topic list를 했을때는 예전과 같은 topic list만 나오는

것이 되서..ㅠ.ㅠ  rviz의 원점을 baselink로 어떻게 잡는지도 자세하게 알려주실수 있으실까요.. 감사합니다.

profile_image

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

최고관리자 작성일

topic이 아닌 tf를 확인하여야 합니다.

rviz2에서 tf항목을 활성화하여 확인하시거나
ros2 run tf2_tools view_frames 를 사용하여 현재 tf상태를 문서로 저장하여 확인하실 수 있습니다.

rviz2를 실행하면 왼쪽 가장 위에 map으로 저장되어 있는 원점을 base_link로 변경하여 주시면 됩니다.

profile_image

erickim24님의 댓글의 댓글

erickim24 작성일

ros2 run tf2_tools view_frames 를 사용하여 pdf로 확인을 했는데,  no tf data recived라고 뜨는데..

해결책이 있을까요..?

profile_image

최고관리자님의 댓글

최고관리자 작성일

추가 확인 결과 tf를 비활성화 하기 위해 몇가지 코드가 삭제되었던 것 같습니다.

아래 두 코드를 236번 줄에 넣어 주시면 tf가 발행될 것으로 예상됩니다.
broadcaster_ = std::make_unique<tf2_ros::TransformBroadcaster>(this);
publish_tf_ = true;

236번 줄은 아래 코드 바로 아래 줄입니다.
if(res) res = MW_AHRS_Setting();

profile_image

erickim24님의 댓글의 댓글

erickim24 작성일

236번 줄은 아래 코드 바로 아래 줄입니다.
if(res) res = MW_AHRS_Setting();
 
  ---> 이 항목이 없어요..ㅠ.ㅠ


stella_ahrs/mw/mw_ahrs.cpp 코드인 것이죠..

profile_image

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

최고관리자 작성일

네 코드는 해당 경로가 맞는데 버전이 다른 것 같습니다.

해당 버전에서는 52번 줄에 넣어주시면 될 것 같습니다.
아래 코드 바로 아래 줄입니다.
int res = MW_AHRS_Serial_Connect(port, baud_rat, sel);

profile_image

erickim24님의 댓글의 댓글

erickim24 작성일

감사합니다.. 잘 출력이 됩니다..!!

profile_image

erickim24님의 댓글의 댓글

erickim24 작성일

이 출력되는 값은 x, y, z 롤, 피치, 요가의 회전값을을 표시한 것이죠.?

profile_image

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

최고관리자 작성일

네  x축 회전 값이 Roll, y축 회전 값이 Picth, z축 회전 값이 Yaw 입니다.

profile_image

erickim24님의 댓글의 댓글

erickim24 작성일

한 가지 질문이 있습니다. imu랑 rplidar랑 같이 사용을 해보려고 해요..

rplidar를 기준점으로 만약에 사용을 한다고 한다면 imu  tf를 혹시 어떻게 설정을 해야 할까요..

조금 범위가 넘어가는 것이지만 죄송하시만 자세하게 답변을 해주실수 있을까요..? 감사합니다.

profile_image

최고관리자님의 댓글

최고관리자 작성일

다른 용도가 더 있다면 description패키지를 제작하셔서 urdf를 작성하여 tf를 관리하셔야 하고

단순히 라이다와 ahrs를 rviz에서 같이 시각화하기를 원하신다면 tf를 같이 연결하여 주시기만 하면 됩니다.
ahrs의 부모 프레임을 base_link에서 rplidar의 프레임으로 변경시켜 주시거나 반대로 rplidar의 부모 프레임을 imu로 변경해 주셔도 됩니다.

회원로그인

회원가입