광운대학교 로봇학부 학술소모임 'BARAM' 20년도 후반기 'Javis' Project에 대한 소스코드입니다.
| OS | 사용 언어 | 사용 IDE |
|---|---|---|
| ROS-kinetic( Ubuntu 16.04 ) | C++ | Qt creater |
- 몸이 불편하신 분들을 옆에서 보조하면서 도울 수 있는 6-DOF manipulator를 제작하였으며, SLAM과 Navigation 을 활용하여 자율 주행이 가능한 mobile manipulator인 Javis를 제작하였습니다.
- Fusion Slam(2d gmapping slam, 3D rtabmap slam)
- Localization & Navigation
- EKF(Odometry Extended Kalman Filter)
- Manipulator(Jacobian)
- Mobile Robot(Pioneer 3dx), Motor(Dynamixel EX-106, MX-106, RX-64, AX-12+)
- Javis_pkg, Javis_arm : 프로젝트 main package
- SLAM(Gmapping, Rtabmap_ros)
- 그 외의 구동에 필요한 package
- (amr-ros-config : RVIZ에서 Pioneer 3dx를 시각화 하기 위한 package)
- (DynamixelSDK : Manipulator에 들어가는 dynamixel들을 구동하기 위한 package)
- (freenect_stack : Kinect v1을 구동하기 위한 package)
- (rosaria : Pioneer 3dx 모델을 ROS로 구동하기 위한 package)
- (robot_localization : EKF를 사용하기 위한 package)
- (teleop_keyboard : 키보드 입력으로 Pioneer 3dx를 조종하기 위한 package)
- ROS가 실행되며 Gmapping, Rtabmap_ros를 통해 각각 2D, 3D map을 그리며 저장한다. 또한 Odometry error는 robot_localizatoin를 통해 보정된다.
- Rtabmap_ros를 통해 그려진 map을 기준으로 주변 물체의 좌표 값 추출(Depth data)
- 해당 좌표 근처까지 Localization, Navigation을 통해 이동한다.
- Manipulator
- 해당 좌표의 물체를 Jacobian 계산을 통해 물체를 집고 다음 navigation point로 이동한 후 2), 3)번부터 다시 반복한다.
- 해당 좌표의 물체를 Jacobian 계산을 통해 물체를 집고 고정하는 등 사용자에게 보조 역할을 제공한다.
프로젝트 완성작 모습
Rtapmap + Gmapping 동시 SLAM 구현 모습
Manipulator 구동모습



