コード例 #1
0
ファイル: ARSCodeWrapper.c プロジェクト: blickly/ptii
 JNIEXPORT void JNICALL 
Java_ptolemy_apps_apes_CTask_CMethod(JNIEnv *env, jobject obj, jstring taskName)
 {
	 const char *task = (*env)->GetStringUTFChars(env, taskName, 0);  
	 if (strcmp(task, "DispatcherTask") == 0) 
		appDispatcher();
	 else if (strcmp(task, "DynamicsControllerTask") == 0)
		dynaController();
	 else if (strcmp(task, "MotorControllerTask") == 0)
		motorController();
	 else if (strcmp(task, "DispatcherIRS") == 0) 
		dispatcherIRS();
	(*env)->ReleaseStringUTFChars(env, taskName, task);
 }
コード例 #2
0
// Update the controller
void GazeboRosTricycleDrive::UpdateChild()
{
    if ( odom_source_ == ENCODER ) UpdateOdometryEncoder();
    common::Time current_time = parent->GetWorld()->GetSimTime();
    double seconds_since_last_update = ( current_time - last_actuator_update_ ).Double();
    if ( seconds_since_last_update > update_period_ ) {

        publishOdometry ( seconds_since_last_update );
        if ( publishWheelTF_ ) publishWheelTF();
        if ( publishWheelJointState_ ) publishWheelJointState();

        double target_wheel_roation_speed = cmd_.speed / ( diameter_actuated_wheel_ / 2.0 );
        double target_steering_angle = cmd_.angle;

        motorController ( target_wheel_roation_speed, target_steering_angle, seconds_since_last_update );

        //ROS_INFO("v = %f, w = %f !", target_wheel_roation_speed, target_steering_angle);

        last_actuator_update_ += common::Time ( update_period_ );
    }
}
コード例 #3
0
int main(int argc, const char * argv[])
{
	OptParse parser;
//	parser.addOption("s", true);
	parser.addOption("js", true);

	if(!parser.parse(argc, argv))
	{
		std::cout << "Required Options were not specified" << std::endl;
		return 1;
	}

	asio::io_service io;

	PacketSender sender(io);

	sender.connect(6142);

//	for(int i = 0; i < 5; ++i)
//	{
//		sender.write("P");
//		std::this_thread::sleep_for(std::chrono::milliseconds(1000));
//	}

	
	JoyStick joystick(parser.getOption("js"));
	//AudioCapture audio("hw:1,0", "S16_LE");
	//AudioCapture audio("hw:1,0", "");
	//AudioCapture audio;
	//ImageProcessor imageProcessor;
	//SerialComm serial;

	// Define the Axis to use
	TimedAxisController panAxis(joystick, JoyStick::Axis::HAT_H);
	panAxis.setInterval(50);
	TimedAxisController tiltAxis(joystick, JoyStick::Axis::HAT_V);
	tiltAxis.setInterval(100);

	EventAxisController leftMotorAxis(joystick, JoyStick::Axis::LEFT_STICK_V);
	EventAxisController rightMotorAxis(joystick, JoyStick::Axis::RIGHT_STICK_V);

	CameraController cameraController(panAxis, tiltAxis, 90, 90);
	cameraController.setPanSpeed(2.0f);
	cameraController.setTiltSpeed(2.0f);

	MotorController motorController(leftMotorAxis, rightMotorAxis);
	motorController.setMaxSpeed(100.0f);

	// main command dispatch loop
	// read input from the joy stick and handle appropriate events
	while(true)
	{
		joystick.pollEvents();

		// Check for exit
		if(joystick.isPressed(JoyStick::Button::BACK))
		{
			std::cout << "Exiting" << std::endl;
			break;
		}

		// Attempt to sync with platform
		if(joystick.isPressed(JoyStick::Button::START))
		{
			std::cout << "Requesting Sync with Platform..." << std::endl;
			sender.write("Z");
			// ...
		}

		// When the left trigger is pressed capture image from webcam
	//	if(joystick.isPressed(JoyStick::Button::LEFT_TRIGGER1))
	//	{
	//		std::cout << "Capturing Image..." << std::endl;
	//		imageProcessor.process();
	//	}

		// Trigger Audio Capture
	//	if(joystick.isPressed(JoyStick::Button::RIGHT_TRIGGER1))
	//	{
	//		std::cout << "Capturing Audio..." << std::endl;
	//		audio.capture(44100, 3);
	//	}

		cameraController.update(sender);
		motorController.update(sender);
	}


	sender.close();

	return 0;
}
コード例 #4
0
ファイル: ARSCodeWrapper.c プロジェクト: blickly/ptii
 JNIEXPORT void JNICALL 
Java_ptolemy_apps_apes_demo_ARS_MotorControllerTask_CMethod(JNIEnv *env, jobject obj)
 { 
     motorController();
     return;
 }