반응형
아두이노를 이용하여 로드셀의 무게 데이터 받고,
rosserial을 이용하여 데이터를 ros에 publish하도록 수정한 코드이다.
ROS Package를 만들기 위한 이전의 글
Load cell 소개
https://jstar0525.tistory.com/150
rosserial 설치와 기본적인 예제
https://jstar0525.tistory.com/152
ROS 소스 코드
위 두 기초적인 것을 이용하여,
ros에서 load cell의 값을 받을 수 있도록 수정하였다.
https://github.com/jstar0525/loadcell_ros
$ 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);
}
반응형