Event Manager관련 문의사항입니다.

27 views
Skip to first unread message

김만기

unread,
Sep 22, 2016, 2:09:05 AM9/22/16
to Kobuki Users
안녕하십니까? 청운대학교 융합 클러스터 연구원 김만기입니다.

다름이아니라 현재 Windows 기반으로 SDK를 활용하여 프로그램을 제작중에 있습니다.

구동제어까지는 구현을 하였으나, Kobuki로봇내의 범퍼센서, 절벽감지 등 센서와의 연동과 관련하여 궁금한 사항이 있습니다.

현재 EventManager.cpp파일을 통하여 연동이 되는 것으로 추정되는데 

  kobuki::CoreSensors::Data new_state;
    new_state.buttons    = 1;
    new_state.bumper     = 1;
    new_state.cliff      = 1;
    new_state.wheel_drop = 1;
    new_state.charger    = 1;
    new_state.battery    = 100;
  kobuki::EventManager EM;
  EM.init("/kobuki");

위와같이 선언 후 초기화를 하였습니다.

그 후 절벽감지 벡터 매개변수를 없앤 생성자를 별도로 생성하여 
    while (!shutdown_req){
EM.update(new_state);
                sleep();
    }
이와 같이 동작하도록 구현하였습니다.

또한, EventManager.cpp파일 내부의 조건문에 printf문을 삽입하여 이벤트 발생을 확인할 수 있도록 제작하였습니다,

하지만 처음의 초기 상태만 비교하여, 값을 출력한 후 더이상 이벤트 발생을 확인하지 못합니다.(범퍼 센서로 테스트)

EventManager에 대한 제 이해가 다소 부족한것으로 느껴지는데 어떠한 방법으로 코드를 작성해야 할지 방법 혹은 조언 부탁드립니다.!!

계절이 바뀌는 가을 감기 조심하시고, 수고하십시오.

Hyunchul Jung

unread,
Sep 22, 2016, 5:45:00 AM9/22/16
to 김만기, Kobuki Users
안녕하세요,

거북이 샘플 코드를 보면 (아래 URL) ecl:Slot 객체를 만들고 콜백함수를 설정하여야 이벤트가 발생될때마다 콜백함수가 호출되는 것으로 알고 있습니다. 콜백함수 처리 하셨는지 궁금합니다.

 ecl::Slot<> slot_stream_data;
... //생략
slot_stream_data(&KobukiManager::processStreamData, *this); //processStreamData 콜백 함수

//콜백 함수 구성 예
  void processStreamData() {
    ecl::Pose2D<double> pose_update;
    ecl::linear_algebra::Vector3d pose_update_rates;
    kobuki.updateOdometry(pose_update, pose_update_rates);
    pose *= pose_update;
    dx += pose_update.x();
    dth += pose_update.heading();
    processMotion();
  }

아래 URL 샘플에서 자세한 내용 확인합니다.

정현철 드림


Yujin Robot Co., Ltd
HyunChul Jung / Manager

Tel. 070-4657-7054
Mobile. 010-3164-1575
Email. hcj...@yujinrobot.com


2016년 9월 22일 오후 3:09, 김만기 <mand...@gmail.com>님이 작성:

--
Kobuki's nest: kobuki.yujinrobot.com
---
You received this message because you are subscribed to the Google Groups "Kobuki Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kobuki-users+unsubscribe@yujinrobot.com.
To post to this group, send email to kobuki...@yujinrobot.com.
Visit this group at https://groups.google.com/a/yujinrobot.com/group/kobuki-users/.

Reply all
Reply to author
Forward
0 new messages