아두이노를 이용하여 로드셀의 무게 데이터 받고,
rosserial을 이용하여 데이터를 ros에 publish하도록 수정한 코드이다.
ROS Package를 만들기 위한 이전의 글
Load cell 소개
https://jstar0525.tistory.com/150
[Load Cell][Arduino] Load Cell
이 글은 아래의 링크를 참고로 만들어졌습니다. http://lhdangerous.godohosting.com/wiki/index.php/%EB%A1%9C%EB%93%9C%EC%85%80_HX711_(Load_cell_HX711) 로드셀 HX711 (Load cell HX711) - 도구의인간 메이커..
jstar0525.tistory.com
rosserial 설치와 기본적인 예제
https://jstar0525.tistory.com/152
[ROS Melodic] ROS에서 Arduino 설치 및 사용
Test Env. HW : jetson AGX Xavier, Arduino Uno SW : jetpack 4.5.1 (Ubuntu 18.04, ROS Melodic, CUDA 10.2, cuDNN 8.0) 1. Install package $ sudo apt-get install ros-melodic-rosserial-arduino $ sudo apt-..
jstar0525.tistory.com
ROS 소스 코드
위 두 기초적인 것을 이용하여,
ros에서 load cell의 값을 받을 수 있도록 수정하였다.
https://github.com/jstar0525/loadcell_ros
GitHub - jstar0525/loadcell_ros: Using Arduino, communicate with rosserial for loadcell
Using Arduino, communicate with rosserial for loadcell - GitHub - jstar0525/loadcell_ros: Using Arduino, communicate with rosserial for loadcell
github.com
$ git clone https://github.com/jstar0525/loadcell_ros.git
# add library
Sketch - Include Library - Add .ZIP Library...
loadcell_ros/libraries/HX711.zip
#include <ros.h>
#include <std_msgs/Float32.h>
#include "HX711.h"
#define DOUT 3
#define CLK 2
HX711 scale(DOUT, CLK);
float calibration_factor = -136;
ros::NodeHandle nh;
std_msgs::Float32 gram;
ros::Publisher p("gram", &gram);
void setup()
{
scale.set_scale();
scale.tare();
long zero_factor = scale.read_average();
nh.initNode();
nh.advertise(p);
}
void loop()
{
scale.set_scale(calibration_factor);
gram.data = scale.get_units();
p.publish( &gram );
nh.spinOnce();
delay(1000);
}